专注于Jsp开发,为Jsp开发提供源动力 VM主机| 海外空间| 郑州网站建设| 郑州网络公司| 洛阳网站建设
jsp空间

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

添加时间:[2008-4-28 9:19:42] 

 说明:以下代码运行环境:jdk1.4,工具JBuilder2005,Servlet2.4,JSP2.0红色标记为关键代码。由于工程太大,我在这里只放有XML文件、JSP文件、过滤器具体内容用论坛回复。顺序为:JSP文件——过滤器——XML文件。
 <%@pagecontentType="text/html;charset=GBK"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<%
Objectstr=request.getAttribute("user");
pageContext.setAttribute("user",str);
%>
<html>
<head>
<title>

   过滤器

 </title>
</head>
<bodybgcolor="#ffffff">
<h1>

准备过滤

 </h1>
<h1>${pageScope.user}</h1>
<formmethod="post"action="Example1.jsp">
<br>
 <inputtype="text"name="user"/>
 <br>
<inputtype="submit"name="Submit"value="Submit">
<inputtype="reset"value="Reset">
</form>
</body>
</html>

文字

 <%@pagecontentType="text/html;charset=GBK"%>
<%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%>
<%
Objectstr=request.getAttribute("user");
pageContext.setAttribute("user",str);
%>
<html>
<head>
<title>
过滤器
</title>
</head>
<bodybgcolor="#ffffff">
<h1>
准备过滤
packagecom.lgx.filtertext.dao;

importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.io.*;
importjava.util.*;

publicclassFilter1extendsHttpServletimplementsFilter{
  privateFilterConfigfilterConfig;
  //Handlethepassed-inFilterConfig
  publicvoidinit(FilterConfigfilterConfig)throwsServletException{
      this.filterConfig=filterConfig;
  }

  //Processtherequest/responsepair
  publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
                       FilterChainfilterChain){
      String[]strUser={"江泽民同志","胡锦涛同志","奶奶的","我拷","他XX的"};
      Stringstr="";

      try{
          request.setCharacterEncoding("GBK");
          HttpServletRequesthsrq=(HttpServletRequest)request;
          Stringuser=hsrq.getParameter("user");

          if(user==null||user.equals("")){

          }else{
              StringBuffersb=newStringBuffer(user);
              for(inti=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(ServletExceptionsx){
          filterConfig.getServletContext().log(sx.getMessage());
      }catch(IOExceptioniox){
          filterConfig.getServletContext().log(iox.getMessage());
      }
  }

  //Cleanupresources
  publicvoiddestroy(){
  }
}

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

 <?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4">
 <display-name>Web</display-name>
 <filter>
  <filter-name>filter1</filter-name>
  <filter-class>com.lgx.filtertext.dao.Filter1</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>filter1</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
 <servlet>
  <description>AddedbyJBuildertocompileJSPswithdebuginfo</description>
  <servlet-name>debugjsp</servlet-name>
  <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
  <init-param>
    <param-name>classdebuginfo</param-name>
    <param-value>true</param-value>
  </init-param>
  <load-on-startup>3</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>debugjsp</servlet-name>
  <url-pattern>*.jsp</url-pattern>
 </servlet-mapping>
</web-app>

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

 <?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"version="2.4">
 <display-name>Web</display-name>
 <filter>
  <filter-name>filter1</filter-name>
  <filter-class>com.lgx.filtertext.dao.Filter1</filter-class>
 </filter>
 <filter-mapping>
  <filter-name>filter1</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>
</web-app>

关于我们 | 付款方式 | 客户管理 | 网站导航 | 友情连接


版权所有 2008 三易网络(洛阳)科技开发有限公司 京ICP备06012028号

服务热线:0371-63653120 63658758(郑州) 0379-63921200   63265368(洛阳)

QQ在线客服: JSP空间咨询   JSP空间咨询    Email:web@suneasy.cn

郑州网络公司 郑州网站建设 洛阳网站建设

总部地址:纱厂南路41号中泰新城泰福苑803室 郑州分公司地址:金水区圣菲城