A>session
클라이언트와 서버간이 연결되게 해주는 것이다.
http 프로토콜의 특성은 연결 상태를 보전하지 않는다는 것이다.
그래서 이용하는게 session이다
클라이언트를 인식할수 있게 서버는 request에 대한 response를 할 시
response와 함께 session id 를 클라이언트에 발급을 한다.
클라이언트는 이 session id 를 자신의 로컬 컴퓨터의 cookie에 넣어 보관한다.
그러면 클라이언트가 다음에 request 를 서버로 보낼때
서버는 session id를 판별하고
같은 session 레퍼런스를 반환한다.
B>영역
클라이언트의 브라우저 범위이다.
브라우저가 종료되면 session은 사라진다.
C>예시 session
HttpSession session = request.getSession();
session.setAttribute("name","내이름");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<h1>이름저장</h1>");
HttpSession session = request.getSession();
String name = (String)session.getAttribute("name");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println("<h1>name=" +name+"</h1>");
D> RequestDispatcher , forward
RequestDispatcher 의 역할
보통 Dispatcher 는 내보내는 놈이다.
즉 요청사항을 다른곳으로 내보내는 놈이다.
RequestDispatcher d = request.getRequestDispatcher ("내보낼 경로");
d.forward(request,response) // 내보낼 경로로 포워딩
예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("euc-kr");
response.setContentType("text/html;charset=euc-kr");
PrintWriter out = response.getWriter();
String id = request.getParameter("id");
String pw = request.getParameter("passwd");
if(id.equals("java") &&pw.equals("java")) {
HttpSession session = request.getSession();
session.setAttribute("id",id );
RequestDispatcher dispatcher = request.getRequestDispatcher("menu.jsp");
dispatcher.forward(request, response);
}else {
out.println("<script>");
out.println("alert('아이디나 비밀번호가 일치하지 않습니다.')");
out.println("history.back()");
out.println("</script>");
}
|
cs |
'웹 > jsp' 카테고리의 다른 글
jsp-6 내장객체 (0) | 2021.01.26 |
---|---|
jsp5 - 지시어와 태그 (0) | 2021.01.26 |
jsp4 -한글처리 (0) | 2021.01.25 |
jsp3 - form 처리 (0) | 2021.01.25 |
jsp2 -서블릿 소개 (0) | 2021.01.25 |