web.xml 에 미리 init param 을 하여서 servlet에서 받아오는 것은 jsp 와 매우 유사하다.
jsp-file 이 servlet-class로 변경되었고 그 내부의 표시법이 바뀌었고 url-pattern 내용도 살짝 바뀌었고 그 이외에는 같다.
받아올 때에는 jsp 에서는 config.getInitParameter("") 이었지만, servlet 에서는 getServletConfig() 를 사용한다.
context parameter 설정법은 동일하다.
getServletContext().setAttribute 와 getAttribute 는 application. 을 앞에 붙이던 jsp 와 달리 getServletContext()를 앞에 붙이게 된다. 서블릿이 application을 이용하는 방법이다.
jsp 에서 application.setAttribute로 설정해 둔 것을 servlet에서 가져올 수도 있더라...
response.sendRedirect("이동할 jsp"); 이것과
RequestDispatcher dispatcher=request.getRequestDispatcher("이동할 jsp");
dispatcher.forward(request,response); 이것의 차이는
redirect는 페이지를 재요청하는 것이다. request 와 response를 새로 만들기 때문에 정보 공유가 불가능하다. 그리고, url 를 보면 jsp 값이 처음과 달라지는 것을 알 수 있다.
반면, forward 는 request 와 response 를 그대로 넘기기 때문에 정보 공유도 가능하다. url이 그대로이다. 제어권 자체를 변경된 url로 영구히 넘긴다.
include 또한 있는데, 이 경우에는 include 된 페이지의 처리가 끝나면 제어권이 다시 본래의 jsp 로 돌아오게된다.
RequestDispatcher dispatcher = request.getRequestDispatcher("include 할 jsp");
dispatcher.include(request,response); 이렇게 하면 된다.
include 지시자일때와 무슨차이냐고 묻는다면, include 지시자는 소스로 추가가 되기 때문에 그곳의 변수 또한 인식을 하게 되는데, <jsp:include page="NowTime.jsp"/> 와 같은 액션태그나 메서드는 아예 그쪽으로 보냈다가 복귀를 하는 개념이다.
<%@include file="adfad.jsp"%>
jsp 의 스크립트릿 태그 안에 한글을 넣을 경우에는 깨진다. charset="euc-kr" 를 잘 확인하자 특히 html 넣을 때에
인프런 들으려고했는데... 후.. 버퍼링 문제떄문에 최적화 시켜준다고 했는데 7시간이 걸려도 아직 되질 않는다.. 오늘은 요까지..!
'공부 기록들' 카테고리의 다른 글
2020.03.24 Spring(2) (0) | 2020.03.25 |
---|---|
2020.03.19 Spring(1) (0) | 2020.03.19 |
2020.03.10 JSP (1) (0) | 2020.03.10 |
2020.02.25-28 백엔드 공부(8) (0) | 2020.02.28 |
2020.02.19 백엔드 공부 (7) (0) | 2020.02.19 |