개발자 미니민의 개발스터디

[JSP] 서블릿을 이용한 forward 포워딩

by mini_min

JSP

[JSP] 서블릿을 이용한 forward 포워딩 

😢 서블릿 완벽하게 배우지 않은 상태! 22.10.03 😢

 

✔️ 서블릿을 이용한 포워딩 예

: WEB-INF - jsp 파일의 ch05 폴더에 코드 작성

<!--  HTML 에서 주소의 가장 앞 / 는 주소 -->
<form action="/study2/ch05/demo" method="post">
	<p>이름 : <input type="text" name="name"></p>
	<p>나이 : <input type="text" name="age"></p>
	<p>
		<button type="submit">확인</button>
	</p>
</form>

 

- demo 폴더에 있는 Demoservlet 실행

doGet 과 doPost 방식 두가지 모두 작성한다. 

doGet방식으로 서블릿에서의 포워딩시, RequestDispatcher 는 담고 있는 정보를 저장하고 있다가 그 다음 페이지, 다음 페이지에서도 해당 정보를 볼 수 있게 저장하는 기능을 한다.

@WebServlet("/ch05/demo")
public class DemoServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//get 방식으로 요청하는 경우	
		
		//forward 할 때 path 의 가장 앞 / 는 context path 까지 이다.
		RequestDispatcher rd = req.getRequestDispatcher("/WEB-INF/jsp/ch05/write.jsp");
		rd.forward(req, resp);
		
	}

 

doPost 방식으로 요청하는 경우,getParampeter 로 파리미터를 받아온다.

이후 RequestDispatcher 객체로 결과를 포워딩한다.

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		//post 방식으로 요청하는 경우
		
		req.setCharacterEncoding("utf-8");
		
		String name = req.getParameter("name");
		int age = Integer.parseInt(req.getParameter("age"));
		
		String s = age >= 19 ? "성인" : "미성년자";
		
		String a = name + "님의 나이가 " + age + "이므로  ," + s + "입니다.";
		
		req.setAttribute("msg", a);
		
		RequestDispatcher rd = req.getRequestDispatcher("/WEB-INF/jsp/ch05/result.jsp");
		rd.forward(req, resp);
		
		
	}

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기