page
: 페이지 내
에서 지역변수
처럼 사용request
: 요청을 받아 웹 브라우저에게 응답할 때까지
변수가 유지되는 경우 session
: 웹 브라우저 별로 변수가 관리되는 경우 사용application
: 웹 어플리케이션이 시작되고 종료될 때 까지 유지되는 경우
- attribute.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String userid = "user"; String userpw = "abcd1234"; String username = "자바학생"; request.setAttribute("userid", userid); request.setAttribute("userpw", userpw); request.setAttribute("username", username); //request값이 살아있어야 하기 때문에 forward로 페이지 이동해야함. pageContext.forward("attribute2.jsp"); %> </body> </html>
- attribute2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String userid = (String)request.getAttribute("userid"); String userpw = (String)request.getAttribute("userpw"); String username = (String)request.getAttribute("username"); %> 아이디 : <%=userid %></br> 비밀번호 : <%=userpw %></br> 이름 : <%=username %> </body> </html>
forward로 페이지 이동 했기 때문에, url에는 변화가 없다.
forward가 아닌 redirect로 페이지 이동하면 request 부분이 날라가서
null값으로 출력된다.
- attribute.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String userid = "user"; String userpw = "abcd1234"; String username = "자바학생"; session.setAttribute("userid", userid); session.setAttribute("userpw", userpw); session.setAttribute("username", username); // redirect방식은 request 객체의 값만 지우기 때문에 // session은 redirect 방식으로 전달해도 된다. //pageContext.forward("attribute2.jsp"); response.sendRedirect("attribute2.jsp"); %> </body> </html>
- attribute2.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String userid = (String)session.getAttribute("userid"); String userpw = (String)session.getAttribute("userpw"); String username = (String)session.getAttribute("username"); %> 아이디 : <%=userid %></br> 비밀번호 : <%=userpw %></br> 이름 : <%=username %> </body> </html>