@servlet()
@WebServlet("/board/write") (web.xml에서)XML배웠으니까 어노테이션을 이제 잘! 써보자
@WebServlet(loadOnStartup = 1, urlPatterns = "/board/write") --> 요렇게
@WebServlet("/board/read")
@WebServlet("/board/write")
Q. 서블릿 두개 다 write로 썼다?
--> Exception : [a.a.a.Test1]과 [a.a.a.Test2]인 두 서블릿들 모두 url-pattern [/board/write]에 매핑되어 있는데, 이는 허용되지 않습니다.
CharacterEncodingFilter
@WebFilter("*") --> encodingFilter를 전역에서 쓰겠다 (= 한국어를 사용하고싶으니까는..)
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// place your code here
request.setCharacterEncoding("utf-8");
System.out.println("encoding filter 시행");
// pass the request along the filter chain
chain.doFilter(request, response);
}
Listener
@WebListener // --> 얘도 지워도돼. 지우고나면 XML에 listener 추가하면 되겠지?
public void sessionCreated(HttpSessionEvent se) {
// session이 호출되는 순간 호출되는 메서드
}
# init() : 서블릿이 초기화될 때 호출되는 메서드
- 서블릿 초기화는 보통 서블릿이 처음 요청될 때 또는 웹 애플리케이션이 시작될 때 발생하며, 초기화 작업을 수행하는 데 사용됩니다.
# destroy() : 서블릿이 소멸될 때 호출되는 메서드
- 주로 리소스 정리 또는 마무리 작업을 수행하는 데 사용됩니다.
- 예를 들어, 데이터베이스 연결을 닫는 작업 또는 열린 파일을 닫는 작업이 여기에 포함될 수 있습니다.
XML
--> dynamic project - src - webapp - WEB INF - lib밑에 저장됨
** XML
- XML은 데이터를 텍스트 형식으로 저장하므로, 소프트웨어나 하드웨어에 독립적으로 데이터를 저장하고 전달할 수 있습니다.
- 따라서 XML을 사용하면 새로운 운영체제나 프로그램, 브라우저 등에 상관없이 데이터를 안전하고 손쉽게 전달할 수 있습니다.
** 어노테이션과 XML :
- Java 웹 애플리케이션을 개발할 때 서블릿을 정의하고 매핑하는 데 사용 (ex. 404not found가 뜰 때 보여줄 페이지 ^_^)
- XML설정 아주 복잡하고 귀찮지??????? 그래서 어노테이션(@) 쓰는거야 (@WebServlet("/board/write") 이거이거)
- 어노테이션 설정과 XML설정은 중첩되면 안된다!!
<!-- Case1 : 세션시간(단위:sec) 설정 -->
<session-config>
<session-timeout>60</session-timeout>
</session-config>
<!-- Case2 : 404 error 뜰때 페이지를 찾을 수 없습니다... 같은 페이지로 넘기고 싶을 때 -->
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/views/404.jsp</location>
</error-page>
<!-- Case2-1 : (404대신 띄우고 싶은)서블릿의 설정 정보를 정의 -->
<!-- Java 웹 애플리케이션에서 서블릿을 설정하고 해당 서블릿을 특정 URL 패턴에 매핑 -->
<servlet>
<servlet-name>Test1</servlet-name> <!-- 서블릿의 이름을 지정 -->
<servlet-class>a.a.a.Test1</servlet-class> <!-- 서블릿 클래스의 패키지 경로와 이름을 지정 -->
<load-on-startup>1</load-on-startup> <!-- "1"은 초기화 순서를 나타내며, 이 값이 작은 순서대로 초기화됨 -->
</servlet>
<servlet-mapping>
<servlet-name>Test1</servlet-name> <!-- 매핑할 서블릿의 이름을 "Test1"로 지정합니다. 이것은 위에서 정의한 서블릿의 이름과 일치해야 합니다.-->
<url-pattern>/board/write</url-pattern> <!-- 서블릿을 호출하기 위한 URL 패턴을 지정합니다. -->
</servlet-mapping>
++ filter관련
<!-- Spring에서 밑에 코드 복붙할거얌. (물론 클래스명은 다시하겠지) -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>a.a.a.filter.CharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>*</url-pattern>
</filter-mapping>
'JSP > DAY 42 _ 23.10.19' 카테고리의 다른 글
Tag Library (0) | 2023.10.19 |
---|---|
EL (0) | 2023.10.19 |