info.jsp
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'info.jsp' starting page</title>
</head>
<body>
<form action="InfoServlet" method="post">
username:<input type="text" name ="username"/><br/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
InfoServlet:
package com.wyy.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class InfoServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println(request.getParameter("username"));
request.getRequestDispatcher("infoResult.jsp").forward(request, response);
}
public void init() throws ServletException {
// Put your code here
}
}
web.xml配置:
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>InfoServlet</servlet-name>
<servlet-class>com.wyy.servlet.InfoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>InfoServlet</servlet-name>
<url-pattern>/InfoServlet</url-pattern>
</servlet-mapping><pre name="code" class="html">package com.wyy.filter;
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;
public class MyFilter1 implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("MyFilter1 before chain.doFilter");
chain.doFilter(request, response);
System.out.println("MyFilter1 after chain.doFilter");
}
@Override
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
MyFilter2:
package com.wyy.filter;
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;
public class MyFilter2 implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("MyFilter2 before chain.doFilter");
chain.doFilter(request, response);
System.out.println("MyFilter2 after chain.doFilter");
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
web.xml配置Filter
<filter>
<filter-name>MyFilter1</filter-name>
<filter-class>com.wyy.filter.MyFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter1</filter-name>
<url-pattern>/InfoServlet</url-pattern>
</filter-mapping>
<filter>
<filter-name>MyFilter2</filter-name>
<filter-class>com.wyy.filter.MyFilter2</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter2</filter-name>
<url-pattern>/InfoServlet</url-pattern>
</filter-mapping>
运行结果:
MyFilter1 before chain.doFilter
MyFilter2 before chain.doFilter
MyFilter2 after chain.doFilter
MyFilter1 after chain.doFilter
原理如图: