http://blog.naver.com/action713/220001515342
리뷰에 지금 보고있는책이 안좋다는 글들이 많아서..
초보자들이 하지말았으면 하는 코딩법이 예제로 나와있다는 말을 듣고.
일단. 이걸로 개념만이라도 어렴풋이 잡고.
다른 책 골라서예제실행해봐야겠다.
Chapter 03 Servlet의 핵심 사항들
★웹상에서 클라리언트에서 서블릿으로 요청하는 방식은 대표적으로 get과 post두 가지 방식으로 나뉜다.
[[get방식]]
1) 클라이언트에서 서블릿으로 요청하는 방식
사용방식 : <a href = “list.jsp?pageNo=2”>[2]</a>
get방식으로 요청이 전송되는 경우 :
- 브라우저 주소 표시줄에 주소를 직접입력해서 요청을 전송하는 경우
- HTML의 a태그를 사용해서 링크를 걸어서 전송하는 경우
<a href = “list.jsp”>목록보기</a>
- HMML태그에서 method속성을 get으로 지정하는 경우
<form action = “” name = “” method = “get”>
<v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f><o:lock aspectratio="t" v:ext="edit"></o:lock>
2) 서블릿을 이용한 클라이언트에서 전송되는 요청처리
- get방식으로 요청이 전송되어 올 경우 , 최종적으로
doGet(HttpServletRequest request, HttpservletResponse response)메소드호출.
- HttpServletRequest인터페이스에서 제공되는 String getParameter(String name)메소드가 존재하는데
이 메소드는 name이라는 이름으로 전송되어 온 파라미터 값을 반환해주는 메소드이다.
3) 서블릿에서 한글 처리하기
- 링크가 걸려 요청처리가 되는 경우, 폼 태그의 method속성이 get방식인 경우는 페이지에서 사용하고 있는 캐릭터 셋ㅇ로 인코딩 되어 파라미터가 전송된다.
- 주소 표시줄에 파라미터를 직접입력해서 전송하는 경우에는 해당 브라우저에서 사용하고 있는 캐릭터 셋을 이용해서 인코딩을 처리한다.
[[post방식]]
1) 클라이언트에서 서블릿으로 요청하는 방식
post방식으로 요청을 서버로 전송하려면 반드시 html의 form태그를 사용하여 method속성을 post로 지정해야한다.
<form name = “” action = “” method= “post”>
2) 서블릿을 이용한 클라이언트에서 전송되는 요청처리
get방식과 유사하다. 다만 요청 처리를 수행할 때 doGet이 아닌 doPost메소드에서 요청처리된다.
3) 서블릿에서 한글 처리하기
- doPost에서 request.setCharacterEncoding(“euc-kr”)
- get방식으로 요청이 전송되어 올 경우와의 차이점은 get방식의 경우에는 반드시 connector태그에 useBodyEncodingForURI= “true”속성을 이용해야하지만 post방식을 이용할 경우에는 기본적으로 이 방식으로 인코딩방식을 변경할 수 있다.
3.4 하나의 파라미터 이름으로 여러 개의 파라미터 값 처리하기
HttpServletRequest인터페이스에서 제공되는 String[] getParamerterValues(String paramName)메소드를 사용해서 처리해야 한다.
(체크박스의 경우 같은 파라미터 이름으로 값이 여러 개 전송되어 올 수 있으므로
String[] getParameterValues(String paramValue)로 파라미터를 전송받아야 한다.)
3.5 서블릿에서 세션 살펴보기
1) 세션의 개념
HTTP프로토콜의 특성
- HTTP 프로토콜의 대표적인 특징 중 하나는 상태를 유지하지 않는다.
(클라이언트가 한번 요청을 하고 서버에서 응답을 하면 해당 클라이언트와 서버와의 연결을 유지되지 않는다.)
- 웹 서버는 동시에 여러 개의 요청을 효과적으로 처리할 수 있지만 로그인, 장바구니 등의 상태가 윶되어야하는 프로그램 작성은 힘들다.
- 단점을 보안하기 위해 만든 것이 “세션”
(세션은 서블릿에서 클라이언트와 서버의 상탤ㄹ 유지하기 위해 제공되는 API이다.)
2) 세션 예제
서블릿에는 세션을 다룰 수 있는 httpsession인터페이스를 제공하고 있다.
u HttpServletRequest.getSession(true) : 해당 클라이언트에 세션이 할당되어 있으면(이전 요청에 의해 이미 세션이 생성되어 있으면) 기존에 생성되어 있는 세션 객체의 레퍼런스를 반환하고, 생성되어 있지 않으면(첫 번째 요청이면) 새롭게 객체를 생성하는 메소드로 , 파라미터 값을 생략했을 경우 기본값이 된다.
(HttpServletRequest.getSession() = HttpServletRequest.getSession(true))
◆ HttpServletRequest.getSession(false) : 기존 클라이언트에 대해 세션 객체가 생성되어 있으면 기존 생성된 세션의 레퍼런스를 반환하고, 기존 세션 객체가 생성되어 있지 않으면 에러를 발생시키는 메소드.
★서블릿에서 데이터를 공유하는 방법
1. 초기화 파라미터를 사용하는 것. Web.xml에 초기화 파라미터를 설정하는 방법
2. 서블릿이 제공하는 특정 영역에 속성을 생성하는 방법
'공부해요 > JSP' 카테고리의 다른 글
[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 1 (0) | 2014.07.29 |
---|---|
[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 2 (0) | 2014.07.29 |
[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 4 (0) | 2014.07.29 |
[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 5 (0) | 2014.07.29 |
[ 모델2로 구현하는 자바 웹 프로그래밍 JSP2.2 & Servlet3.0 따라하기 ] 7 (0) | 2014.07.29 |