Daily coding
Servlet : include 방식과 forward방식 본문
Include & forward
: include / forward 할 서블릿은 꼭 등록이 되어있어야함
( @webServlet("/이름") )
1. include :
: 서블릿에 다른 서블릿을 끼워 넣음 (페이지 이동x)
뷰에 뿌려지는 url 주소는 처음 열었던 서블릿으로 되어있음
뷰를 따로따로 만들어놓고 붙여놓을 수 있음
* 사용법
- getRequestDispatcher 소속의 include() 함수 사용
RequestDispatcher dis = req.getRequestDispatcher("include"); // web.xml에 등록된 이름으로
dis.include(req, resp);
*** include 하는 서블릿에는 printwriter를 close하면 안됨,
-> 불러온 후 닫아버려서, 뒷 부분이 적용이 안되기 때문에
// include 서블릿 불러오기
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("hello Servlet doGet");
// include (가져오기), forward (이동하다)
// include / forward 할 서블릿은 꼭 등록이 되어있어야함 ( @webServlet("/이름") )
// include : 뷰를 따로따로 만들어놓고 붙여놓을 수 있음
// 뷰에 뿌려지는 url 주소는 처음 열었던 서블릿으로 되어있음 (이경우는 hello)
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<title>제목</title>");
pw.println("<body>");
pw.println("<h1>Hello Servlet Start</h1>");
// include : 붙여넣기, 해당 서블릿을 중간에 끼워넣음 (페이지 이동x)
RequestDispatcher dis = req.getRequestDispatcher("include"); // web.xml에 등록된 이름으로
dis.include(req, resp);
pw.println("<h1>Hello Servlet End</h1>");
pw.println("</body>");
pw.println("</head>");
pw.println("</html>");
pw.close();
}
2. forward : 페이지 이동하기
: 사용시 다른 서블릿 또는 html/jsp 등으로 이동됨
앞뒤로 다른 태그가 있어도 표시되지 않고 다른 페이지로 이동하게 됨
(그동안 했던 페이지 이동 방식)
// include 서블릿 불러오기
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// forward : 페이지 이동하기
// 앞뒤로 다른 태그가 있어도 표시되지 않고 다른 페이지로 이동하게 됨
resp.setContentType("text/html; charset=UTF-8");
PrintWriter pw = resp.getWriter();
pw.println("<html>");
pw.println("<head>");
pw.println("<title>제목</title>");
pw.println("<body>");
pw.println("<h1>Hello Servlet Start</h1>");
// forward : 전진하기, 중간에 끼워넣지 않고 해당 서블릿으로 이동함
RequestDispatcher dis = req.getRequestDispatcher("forward");
dis.forward(req, resp);
pw.println("<h1>Hello Servlet End</h1>");
pw.println("</body>");
pw.println("</head>");
pw.println("</html>");
pw.close();
}
'Front-end > 비동기통신' 카테고리의 다른 글
JSP : JSP 개념과 기본 (0) | 2020.01.20 |
---|---|
Servlet : Cookie와 Session (0) | 2020.01.18 |
Servlet : 정리 (0) | 2020.01.18 |
Servlet : servlet 과 jsp 연결하기 (0) | 2020.01.18 |
Servlet : Java에서 데이터 보내는방식 2 ( forward ) (0) | 2020.01.18 |