본문 바로가기
개발참고

[JSP&Servlet] 서블릿,QUERY문자열

by 라인 :D 2020. 5. 19.

[JSP&Servlet] 서블릿,QUERY문자열


> 서블릿 실행환경 설정 web.xml

서블릿 실행환경 설정 web.xml

1.서블릿 등록

<servlet>

<servlet-name>서블릿이름</servlet-name>

<servlet-class>클래스이름</servlet-class>

</servlet>

2.서블릿 매핑

 <servlet-mapping>

<servlet-name>first</servlet-name> <!-- first 라는 서블릿을 실행할거다 -->

<url-pattern>/ff</url-pattern>  <!--//ff 라는 요청이 들어오면 실행해라-->

</servlet-mapping>

<servlet-mapping>

<servlet-name>second</servlet-name> <!-- second 라는 서블릿을 실행할거다 -->

<url-pattern>/ss</url-pattern>  <!--//ss 라는 요청이 들어오면 실행해라-->

</servlet-mapping>

 

 

> ServletContext

서블릿이 서블릿 컨테이너와 통신하기 위해서 사용되는 메서드들을 지원하는 인터페이스이다

1.     서버시작시 자동생성

2.     Web app 단위로 생성

3.     서버 중지시 삭제

4.     기능

-   서버 정보 추출

-   로그 기록

-   Web app 단위로 정보 공유

5.     주소값추출 : 메서드 이용

-   ServletConfig : getServletContext( )

-   HttpServlet : getServletContext( )

ServletConfig  (서블릿 정보 추출)

HttpServletRequest (요청정보 처리)

HttpServletResponse (응답정보 처리)

> Servlet 객체가 메모리에서 해제되는 시점

1. 컨테이너(서버)가 종료될때

2. 웹어플리케이션이 리로드 될때

3. 자동 리로드가 설정된 상태에서 서블릿이 재 컴파일 되었을 때

> Query 문자열

1.     모든 정보들은 name=value의 형식으로 전달된다. 여러쌍의 name=value %를 구분자로 하여 지정하여 전달한다

ex) name=unico&hobby=singing&faverite_sports=baseball

2.     영문자 대소문자와 숫자 그리고 일부 특수문자는 그대로 전달

3.     2번에서 제시한 문자열 이외에는 %기호와 함께 그 문자의 16진수 값으로 전달된다

ex) % ----- %2C / ---- %B0%A1 / = ------ %3D / + ------ %2B

4.     공백문자는 + 기호로 전달된다 URL에서는 공백을 포함할 수 없다

 

> Query문자열 처리 서블릿 GET방식과 POST방식의 비교

GET

방식

헤더파일에 정보가 포함되어 URL에 정보가 모두 노출됨

길이가 제한적임

 ex) 간단한 검색어 처리 같은 경우

POST

방식 

헤더파일과 바디파일로 되어있으며 정보가 바디파일에 포함되어 URL에 정보가 노출되지 않음

길이에 제한없음

반드시 폼태그를 사용하여야 함

 ex) 아이디비밀번호, 파일전송 등

> GET방식

> POST방식

> 한글깨짐현상 복구방법

GET : 직접 코드변환

1.     String ---> byte[ ]

2.     Byte[ ] ---> String

byte[ ] getBytes(String charesetName)  메서드

POST방식 : 메서드 이용

req.setCharacterEncoding("euc-kr"); 메서드 이용하면 한글깨짐 현상 복구