# 서블릿에서 화면 이동하기
일단 자바스크립트에서 화면이동은 다음과 같다.
location href="위치"
그리고 JSP서블릿에서의 화면이동은 다음과 같다.
1. response.sendRedirect("a.jsp"); ( request값 유지안됨 )
2. request.getReqeustDispatcher("a.jsp").forward(request, response); ( request값 유지됨 )
# 기본 예제
간단하게 테스트해보자.
a.jsp ( web.xml에 서블릿매핑은 당연 되어 있어야한다. )
<form action="abc.do">
<input type="text" name="id">
<input type="text" name="pw">
<input type="submit">
</form>
서블릿 ( doGet에서 아래 doPost메서드 호출하면됨 )
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 첫번째방식
//response.sendRedirect("a.jsp");
// 두번째방식 - 이거는 <jsp:forward~>와 같은역활... url유지하고 request값유지한다
request.setAttribute("aa", "bb"); // request값유지되는지확인하기위해
request.getRequestDispatcher("a.jsp").forward(request, response);
// request객체를 매개변수로 그대로 넘겨줌
}
# request값 유지하면서 화면이동
핵심은 서블릿 화면이동시 request값 유지하기이다.
아래 예제는 a.jsp에서 입력한 id, pw를 서블릿으로 전달 후 다시 request객체를 서블릿으로 부터 a.jsp
로 전달하여 값을 유지하는 예제이다.
a.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<form action="abc.do">
<input type="text" name="id">
<input type="text" name="pw">
<input type="submit">
</form>
<%=request.getParameter("id")%>
a.java 서블릿( web.xml에 url패턴은 abc.do )
서블릿의 doGet메서드에 다음을 추가하면된다.
request.getRequestDispatcher("a.jsp").forward(request, response);
// request객체를 그대로 넘겨줌
# 예제 활용
간단히 아이디와 비밀번호를 입력받아 서블릿에서 처리하는 간단한 예제를 보자.
a.jsp
<form action="abc.do">
<input type="text" name="id">
<input type="text" name="pw">
<input type="submit">
</form>
서블릿
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id=request.getParameter("id");
String pw=request.getParameter("pw");
String msg="실패";
if(id.equals(pw)){
msg="성공";
request.setAttribute("msg",msg);
// request로 세팅한이유는 밑에 화면이동이 request값을 유지해주기때문
}
request.getRequestDispatcher("b.jsp").forward(request, response);
}
b.jsp
id : <%=request.getParameter("id")%>
pw : <%=request.getParameter("pw")%>
<%=request.getAttribute("msg")%>
이런식으로 jsp페이지와 서블릿간의 값 전달을 활용 할 수 있다.
'JSP' 카테고리의 다른 글
ajax( jQuery ) (0) | 2019.03.28 |
---|---|
(부록) java.lang.reflect (0) | 2019.03.28 |
JSP 액션태그 ( <jsp:useBean> ) (0) | 2019.03.27 |
JSP 에러 페이지 설정 (0) | 2019.03.27 |
JSP 경로 / 파일관련 (0) | 2019.03.09 |