Backend/Servlet & JSP
[Servlet] 페이지(page) 이동방법, 정보손실과 정보유지
Gaejirang-e
2023. 4. 23. 14:53
페이지(page) 이동방법
1) WEB SERVER에서 이동
<a href="url주소"></a> in 'HTML'
location.href="url주소" in 'Javascript'
2) WAS(SERVLET CONTAINER)에서 이동
- redirect방식
: 새로운 request, response를 생성, 이동하는 방법(정보손실)
response.sendRedirect(url);
- forward방식
: 기존의 request, response를 유지하면서 이동하는 방법(정보유지)
request.getRequestDispather(url).forward(request, response);
⚠️ redirect는 새로운 페이지(page)로 넘어가는 형식이다.
⚠️ forward는 페이지(page)가 reload되는 형식이다
[파라미터로 받은 혈액형정보를 다른 페이지로 넘기는 방식.java]
@WebServlet(urlPatterns="/bloodCheck", loadOnStartup = 1)
public class BloodCheckServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest req, HttpServletResponse res) thorows ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String name = req.getParameter("name");
String blood = req.getParameter("blood");
// 1) redirect 방식
// res.sendRedirect(blood + ".jsp?name=" + URLEncoder.encode(name, "UTF-8") + "&blood=" + blood);
// 2) forward방식
RequestDispatcher rd = req.getRequestDispatcher("/" + blood + ".jsp");
rd.forward(req, res); // 기존 req, res를 유지
}
}
📌. request.setCharacterEncoding("UTF-8");
: post방식으로 전송되는 한글 인코딩 처리
: post방식으로 전송되는 한글 인코딩 처리