web.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<!-- xml=可扩展的标记语言 -->
<!-- ns=namespace命名空间 -->
<!-- xsd=xml schema definition文档结构描述 -->
<!-- <servlet> -->
<!-- <servlet-name>Test1Servlet</servlet-name> -->
<!-- <servlet-class>test211230.Test1Servlet</servlet-class> -->
<!-- </servlet> -->
<!-- <servlet-mapping> -->
<!-- <servlet-name>Test1Servlet</servlet-name> -->
<!-- <url-pattern>/Test1Servlet</url-pattern> -->
<!-- </servlet-mapping> -->
<!-- load-on-startup标签作用:tomcat启动时执行该servlet的初始化 -->
<!-- 当值为负整数或未指定值时,该servlet是在第一次被调用时加载并初始化 -->
<!-- 当值为0或正整数是,tomcat启动时会加载并初始化,值越小优先级越高 -->
<!-- 一般会设置上,空间换时间,避免用户在使用是加载等待 -->
<servlet>
<servlet-name>Test3Servlet</servlet-name>
<servlet-class>test211230.Test3Servlet</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>zhangsan</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Test3Servlet</servlet-name>
<url-pattern>/Test3Servlet</url-pattern>
</servlet-mapping>
<filter>
<filter-name>TestFilter</filter-name>
<filter-class>test220105.TestFilter</filter-class>
<init-param>
<param-name>username</param-name>
<param-value>zhangsan</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123123</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>/test/test220104/TestUpload.jsp</url-pattern>
<!-- <dispatcher>REQUEST</dispatcher> -->
<!-- 默认值是request -->
<!-- <dispatcher>FORWARD</dispatcher> -->
<!-- <dispatcher>INCLUDE</dispatcher> -->
</filter-mapping>
<filter-mapping>
<filter-name>TestFilter</filter-name>
<url-pattern>/Test1Servlet</url-pattern>
</filter-mapping>
<filter>
<filter-name>Test2Filter</filter-name>
<filter-class>test220105.Test2Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>Test2Filter</filter-name>
<url-pattern>/test/test220104/TestUpload.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>Test2Filter</filter-name>
<url-pattern>/Test1Servlet</url-pattern>
</filter-mapping>
<display-name>demo211229</display-name>
<welcome-file-list>
<!-- 欢迎页 -->
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
TestUpload.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>上传图片</title>
</head>
<body>
<!-- http://127.0.0.1:8080/demo211229/test/test220104/TestUpload.jsp -->
<form action="/demo211229/UploadServlet" method="post" enctype="multipart/form-data">
<input type="file" name="uploadFile1" /><br>
<input type="file" name="uploadFile2" /><br>
<input type="text" name="coad" /><br>
<input type="submit" value="上传" />
</form>
<% System.out.print("---上传图片---");%>
</body>
</html>
TestFilter.java
package test220105;
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.annotation.WebFilter;
public class TestFilter implements Filter {
public TestFilter() {
System.out.println("TestFilter--构造方法");
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("TestFilter.init");
String value = fConfig.getInitParameter("username");
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("TestFilter.doFilter--之前");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
System.out.println("TestFilter.doFilter--之后");
}
}
Test2Filter.java
package test220105;
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.annotation.WebFilter;
public class Test2Filter implements Filter{
@Override
public void doFilter(ServletRequest var1, ServletResponse var2, FilterChain chain)
throws IOException, ServletException {
System.out.println("Test2Filter.doFilter--之前");
chain.doFilter(var1, var2);
System.out.println("Test2Filter.doFilter--之后");
}
}
CharFilter.java
package test220105;
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.annotation.WebFilter;
@WebFilter("/*")
public class CharFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
chain.doFilter(req, resp);
}
}
UserFilter.java
package test220105;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
public class UserFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest requset = (HttpServletRequest) req;
HttpSession session = requset.getSession();
Object user = session.getAttribute("user");
if(user==null) {
requset.getRequestDispatcher("").forward(req, resp);
}else {
chain.doFilter(req, resp);
}
}
}