1.创建动态web项目
2.创建filters的文件
3.创建主页面
4.配置xml项目
总结构
主页面代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>过滤器</title>
</head>
<body>
<form action="result.jsp">
用户名:<input type="text" name="user">
密码:<input type="text" name="pw">
<input type="submit" value="提交">
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 过滤器要加在接受请求页面的或服务器上 -->
<%
String s=request.getParameter("user");
out.print(s);
%>
登录成功
</body>
</html>
package filter_test0;
import java.io.IOException;
import java.io.PrintWriter;
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;
import javax.servlet.http.HttpFilter;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet Filter implementation class filter2
*/
@WebFilter("/filter2")
public class filter2 extends HttpFilter implements Filter {
/**
* @see HttpFilter#HttpFilter()
*/
public filter2() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
System.out.print("过滤...");
String s=request.getParameter("user");
System.out.println(s);
HttpServletResponse hsr =(HttpServletResponse)response;//将父类对象转化为子类对象
PrintWriter out=hsr.getWriter();
out.print("花");
/*
* if(s==""||s==null) { hsr.sendRedirect("index.jsp");//重定向跳转 }else {
* chain.doFilter(request, response);//给向指定的页面 }
*/
// pass the request along the filter chain
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
response和servelt上不一样,servelt是子类,response是父类
使用向上转型的方法
留言功能
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>过滤器</title>
</head>
<body>
<form action="result.jsp">
留言:<textarea rows="10" cols="30" name="user"></textarea>
<input type="submit" value="提交">
</form>
</body>
</html>
package filter_test0;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet Filter implementation class filter2
*/
@WebFilter("/filter2")
public class filter2 extends HttpFilter implements Filter {
/**
* @see HttpFilter#HttpFilter()
*/
public filter2() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK");
System.out.print("过滤...");
String s=request.getParameter("user");
s=s.replace("敏感词汇", "****");
HttpSession session =((HttpServletRequest)request).getSession();//转换对象
chain.doFilter(request, response);//发送到指定页面
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 过滤器要加在接受请求页面的或服务器上 -->
<%
Object s = session.getAttribute("name");
out.print(s);
%>
</body>
</html>