Contents
모든 요청은 Servlet에서 받고, 응답은 JSP로
1. 디렉토리 구조 살펴보기
JSP 파일은 WEB-INF 폴더 하위 views 폴더에 위치한다
- WEB-INF 폴더 하위에 위치하므로, 외부에서 직접 접근이 불가 ( 보안 요소)
- 애플리케이션 내부에서만 가능 (Servlet 이 접근)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String actionName = request.getParameter("a");
if("deleteform".equals(actionName)) {
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/deleteform.jsp");
rd.forward(request, response);
}
else if("add".equals(actionName)) {
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String pwd = request.getParameter("pwd");
String content = request.getParameter("content");
GuestBookVO vo = new GuestBookVO();
vo.setName(name);
vo.setPwd(pwd);
vo.setContent(content);
GuestBookDAO dao = new GuestBookDAO();
dao.insert(vo);
response.sendRedirect("/guestbook2/gb");
}
else {
GuestBookDAO dao = new GuestBookDAO();
List<guestbookvo> list = dao.getList();
request.setAttribute("list", list);
RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/views/index.jsp");
rd.forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
1)
` actionName 은 jsp에서 url을 넘길 때 ?a=add 등으로 넘기는데 그 때마다
action을 다르게 하기위해 나타내는 구분 값이다
actionName에 따라 요청에 맞는 처리를 해준다.
2) forward, redirect
- redirect : 모든 자원을 반환한 상태로 새롭게 요청. url 이동만
HTTP 응답코드로는 301, 302가 있다
- 301 code : 영구 이동을 말함. 해당 URL이 영구적으로 새롱누 URL로 변경되었음을 나타냄
(검색엔진은 과거 URL의 페이지랭킹과 평가점수를 새로운 URL로 이동)
- 302 code : 임시적으로 새로운 URL로 이동했음.
(검색엔진은 과거 URL의 페이지랭킹과 점수는 그대로 유지하도록 하면서 컨텐트만 새로운 URL에서 조회하 도록 해야할 때 유용)
-> ex) 쇼핑몰에서 일시적으로 인기리에 팔리는 제품이 품절됐음을 알릴 떄
- forward : 요청 받은 자원을 그대로 유지한 채로 제어권을 넘기는 request 의 연장성
- Servlet에서 요청을 처리한 후 그 자원을 그대로 유지한채 JSP에 넘겨줘서 JSP에서 이를 사용할 수 있다
* redirect() 메서드를 호출할 때, 인자로 /WEB-INF 폴더로 시작하는 경로명을 작성하는 것이 아닌 URL을 작성해야한다.
ex) response.redirect(request, response, request.getContextPath() + "/user?a=joinsuccess");
https://victorydntmd.tistory.com/151?category=719481
'IT 공부 > JSP, Servlet' 카테고리의 다른 글
방명록 - 모델1 적용 (0) | 2019.05.16 |
---|---|
Servlet 개념 (0) | 2019.05.16 |
[Java EE] 톰켓 (0) | 2019.05.16 |