목차
Filter
MyFilter01
package com.home.config;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class MyFilter01 implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter init...");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("filter1 before...");
HttpServletRequest req=(HttpServletRequest) request;
if(req.getMethod().equals("POST"))
request.setCharacterEncoding("utf-8");
System.out.println("filter1: "+req.hashCode());
chain.doFilter(request, response);
System.out.println("filter1 after...");
}
@Override
public void destroy() {
System.out.println("filter destroy...");
}
}
MyFilter02
package com.home.config;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class MyFilter02 implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("filter2 init...");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("filter2 before...");
HttpServletRequest req=(HttpServletRequest) request;
HttpSession session = req.getSession();
System.out.println(session.getId());
chain.doFilter(request, response);
System.out.println("filter2 after...");
}
@Override
public void destroy() {
System.out.println("filter2 destroy...");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
<filter>
<filter-name>filter1</filter-name>
<filter-class>com.home.config.MyFilter01</filter-class>
</filter>
<filter-mapping>
<filter-name>filter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>filter2</filter-name>
<filter-class>com.home.config.MyFilter02</filter-class>
</filter>
<filter-mapping>
<filter-name>filter2</filter-name>
<url-pattern>/emp/*</url-pattern>
</filter-mapping>
</web-app>
Listener
Request Listener
package com.home.config;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class ReqListener implements ServletRequestListener{
@Override
public void requestDestroyed(ServletRequestEvent sre) {
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("request listener..."); // 웹페이지 불러올때 필터보다 먼저 호출된다.
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
<listener>
<listener-class>com.home.config.ReqListener</listener-class>
</listener>
</web-app>
Context Listener
package com.home.config;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
@WebListener
public class CtxtListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("context listener..."); // 서버를 구행했을때 필터보다 먼저 수행된다.
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
<display-name>Archetype Created Web Application</display-name>
<welcome-file-list>
<welcome-file>index.do</welcome-file>
</welcome-file-list>
<listener>
<listener-class>com.home.config.CtxtListener</listener-class>
</listener>
</web-app>
'100일 챌린지 > 빅데이터기반 인공지능 융합 서비스 개발자' 카테고리의 다른 글
Day 41 - Embeded (0) | 2024.09.23 |
---|---|
Day 41 - Framework 만들기 (0) | 2024.09.23 |
Day38 - Maven으로 웹사이트 만들고 배포하기 (1) | 2024.09.13 |
Day 37 - Build tool 세팅하기 (Maven) (1) | 2024.09.12 |
Day 33 - Mysql 사용하기, vagrant로 배포하기 (0) | 2024.09.06 |