Servlet过滤器
代码:
提交表单
<%--
Created by IntelliJ IDEA.
User: liupe
Date: 2018-06-11
Time: 10:46
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>上传数据通过滤器</title>
</head>
<body>
<form action="/lp001/Servlet005" method="post">
<p>上传内容:</p>
<input type="text" name="name">
<br>
<input type="submit" value="提交">
</form>
</body>
</html>
过滤器
package lp001;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebFilter(filterName = "Filter001")
public class Filter001 implements Filter {
public void destroy() {
System.out.println("销毁过滤器!");
}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws ServletException, IOException {
//将Servlet对象,转化成HttpServlet对象
HttpServletResponse httpServletResponse = (HttpServletResponse)resp;
HttpServletRequest httpServletRequest = (HttpServletRequest)req;
String name = httpServletRequest.getParameter("name");
if ("liupeng".equals(name)) {
System.out.println("遇到刘鹏!");
chain.doFilter(httpServletRequest, httpServletResponse );
} else {
chain.doFilter(httpServletRequest, httpServletResponse );
}
// 放行 (去到Servlet)
// 如果有下一个过滤器,进入下一个过滤器,否则就执行访问servlet
// 把请求传回过滤链
}
public void init(FilterConfig config) throws ServletException {
String name = config.getInitParameter("name");
System.out.println("name = " + name + ".");
}
}
Servlet
package lp001;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "Servlet005")
public class Servlet005 extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//response.setCharacterEncoding("UTF-8");
//request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
name = new String(name.getBytes("ISO8859-1"),"UTF-8");
System.out.println("name:" + name);
//String newName = request.
out.println("<h1>" + name + "</h1>");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}