개발 무지렁이

[Servlet] 페이지(page) 이동방법, 정보손실과 정보유지 본문

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방식으로 전송되는 한글 인코딩 처리
Comments