找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 站长资讯 业界 查看内容

JSP过滤器实现---论坛不文明语过滤功能

2009-12-24 23:49| 发布者: admin| 查看: 31| 评论: 0|原作者: 情殇

说明:以下代码运行环境:jdk1.4,工具JBuilder2005,Servlet2.4,JSP2.0红色标记为关键代码。由于工程太大,我在这里只放有XML文件、JSP文件、过滤器具体内容用论坛回复。 顺序为:JSP文件——过滤器——XML文件。










准备过滤

${pageScope.user}













文字










准备过滤
package com.lgx.filtertext.dao;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class Filter1 extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
String[] strUser = {"江泽民同志", "胡锦涛同志", "奶奶的", "我拷", "他XX的"};
String str = "";
try {
request.setCharacterEncoding("GBK");
HttpServletRequest hsrq = (HttpServletRequest) request;
String user = hsrq.getParameter("user");
if (user == null || user.equals("")) {
} else {
StringBuffer sb = new StringBuffer(user);
for (int i = 0; i < strUser.length; i++) {
str = strUser[i];
if (sb.indexOf(str) == -1) {
hsrq.setAttribute("user", sb.toString());
} else {
sb.replace(sb.indexOf(str), sb.indexOf(str) + 3, "xxx");
hsrq.setAttribute("user", sb.toString());
}
}
}
filterChain.doFilter(request, response);
} catch (ServletException sx) {
filterConfig.getServletContext().log(sx.getMessage());
} catch (IOException iox) {
filterConfig.getServletContext().log(iox.getMessage());
}
}
//Clean up resources
public void destroy() {
}
}

注:此“XML”代码是在运行时出现的,

http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
Web

filter1
com.lgx.filtertext.dao.Filter1


filter1
/*


Added by JBuilder to compile JSPs with debug info
debugjsp
org.apache.jasper.servlet.JspServlet

classdebuginfo
true

3


debugjsp
*.jsp



注:这一处代码是配置过滤器的,不过JBuilder2005里面Tomcat容器已自动配置

http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
Web

filter1
com.lgx.filtertext.dao.Filter1


filter1
/*



最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 11:39 , Processed in 0.098129 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部