반응형
- 세션 트래킹
- 웹 페이지를 연동하는 방법
- <hidden> 태그 : HTML의 <hidden> 태그를 이용해 웹 페이지들 사이의 정보를 공유함
- URL Rewriting : GET 방식으로 URL 뒤에 정보를 붙여서 다른 페이지로 전송함
- 쿠키 : 클라이언트 PC의 Cookie 파일에 정보를 저장한 후 웹 페이지들이 공유함
- 세션 : 서버 메모리에 정보를 저장한 후 웹 페이지들이 공유함
- <hidden> 태그를 이용한 세션 트래킹 실습
- login.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="login" name="frmLogin" method="post">
아이디 : <input type="text" name="user_id"><br>
비밀번호 : <input type="password" name="user_pw"><br>
<input type="submit">
<input type="hidden" name="user_address" value="서울시 성북구">
<input type="hidden" name="user_email" value="test@gmail.com">
<input type="hidden" name="user_hp" value="010-1111-2222">
</form>
</body>
</html>
- LoginServlet
package sec01.ex01;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("init메서드 호출");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
String user_address = request.getParameter("user_address");
String user_email = request.getParameter("user_email");
String user_hp = request.getParameter("user_hp");
sb.append(user_id + "<br>");
sb.append(user_pw + "<br>");
sb.append(user_address + "<br>");
sb.append(user_email + "<br>");
sb.append(user_hp + "<br>");
out.print(sb);
}
}
http://localhost:8090/pro10/login.html 로 요청한뒤
제출을 하면 아이디 비번이 출력되고
미리 지정한 주소, 메일, 폰번호는 미리 지정한 값이 잘 출력되면 됨
- URL Rewriting을 이용한 세션 트래킹 실습
- LoginServlet
package sec01.ex02;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("init메서드 호출");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
String user_address = request.getParameter("user_address");
String user_email = request.getParameter("user_email");
String user_hp = request.getParameter("user_hp");
sb.append(user_id + "<br>");
sb.append(user_pw + "<br>");
sb.append(user_address + "<br>");
sb.append(user_email + "<br>");
sb.append(user_hp + "<br>");
user_address=URLEncoder.encode(user_address, "utf-8");
sb.append("<a href='/pro10/second?user_id="+user_id+"&user_pw="+user_pw+"&user_address="+user_address+"'>두번째 서블릿으로 보내기</a>");
out.print(sb);
}
}
- SecondServlet
package sec01.ex02;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/second")
public class SecondServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
StringBuffer sb = new StringBuffer();
String user_id = request.getParameter("user_id");
String user_pw = request.getParameter("user_pw");
String user_address = request.getParameter("user_address");
if(user_id != null && user_id.length() != 0) {
sb.append("이미 로그인 상태<br><br>");
sb.append("첫 번째 서블릿에서 넘겨준 아이디 : " + user_id + "<br>");
sb.append("첫 번째 서블릿에서 넘겨준 비밀번호 : " + user_pw + "<br>");
sb.append("첫 번째 서블릿에서 넘겨준 주소 : " + user_address + "<br>");
} else {
sb.append("로그인 하지 않았습니다.<br><br>");
sb.append("다시 로그인 하세요<br>");
sb.append("<a href='/pro10/login.html'>로그인창으로 이동하기</a>");
}
out.print(sb);
}
}
http://localhost:8090/pro10/login.html 로 요청해서 로그인하면
두번째 서블릿으로 보내기 클릭하면
그리고 http://localhost:8090/pro10/second 로 로그인 없이 바로 /second로 요청해보면
위와같이 출력되면 됨.
반응형
'학습 > JSP' 카테고리의 다른 글
15. 세션 (0) | 2022.11.10 |
---|---|
14. 쿠키 (0) | 2022.11.09 |
12. ServletConfig (0) | 2022.11.09 |
11. ServletContext (0) | 2022.11.08 |
10. JSP파일에 출력하기 (0) | 2022.11.08 |
댓글