jsp文件过滤
① JSP过滤器这样设置过滤一个次级路径下的所有URL
/sites/*这样就可以了来,如自果这个文件夹是某个子目录的话还需要添加它的父目录;
下面是些例子
<url-pattern>:指定和过滤器关联的URL,为”/*”表示所有URL;
例子1:单个过滤器配置:容器将其应用于所有接收的请求
<url-pattern>/*</url-pattern>
例子2:过滤器应用到特定目录或资源(文件)的配置:此容器只有在接收到对/mydocs目录中的资源的请求时才会应用该过滤器。
<url-pattern>/mydocs/*</url-pattern>
② jsp中可以使用多个过滤器吗
可以将一个或多个过滤器附加到一个 Servlet 或一组 Servlet。过滤器也可以附加到 JavaServer Pages (JSP) 文件和 HTML 页面。
③ 在 java EE中怎么实现对哪一个.jsp文件进行过滤
先写个过滤的bean,然后在web.xml里配置,如下面是字符过滤:
<!-- 字符编码过滤器 -->
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>filters.ChangeCharsetFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
<!-- 指定编码为UTF-8 -->
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern> //注:把要过滤的jsp页面添加到这里,*则对所有的页面过滤
<!-- 对于所有的request改变其编码 -->
</filter-mapping>
我只是个初学者,不知道说得对不对,嘿嘿。。。
④ web配置问题 过滤所有的jsp文件该怎么搞啊
写个过滤器(创建一个类实现Filter接口)
在web.xml中配置如下
添加以下代码
<filter>
<filter-name>encoding</filter-name> //名字任意
<filter-class>全类路径</filter-class> //实现回filter接口的类的路径
</filter>
<filter-mapping>
<filter-name>encoding</filter-name> //与上面的答名字匹配
<url-pattern>*.jsp</url-pattern> //*.jsp表示任意jsp文件
</filter-mapping>
⑤ filter过滤器配置如何不过滤一些页面
直接添加多个文件映射啊,为每个需要进行过滤的文件都写个映射标签
⑥ 如何用java过滤器是不要把login.jsp页面也过滤掉
|public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest hrequest = (HttpServletRequest) request;
String uri = hrequest.getRequestURI();得到请求地抄址
String file[] = uri.split("/");通过/分隔,这样,数组的最后一个值,就是页面,
你比较下file[file.lenght-1].equals("login.jsp")就可以了。
if(file[file.lenght-1].equals("login.jsp"||)){}要解除某页面的过滤,用||在if里面添加就可以
chain.doFilter(request, response);
}
为了让层次跟清晰一点,最好还是分文件夹。
⑦ Java:现在Filter把所有请求都拦截了,怎么使Filter不过滤login.jsp页面呢
对于这种,我说两种方法:
1、将你所有的JSP页面单独放在一个文件夹里(假如jspPage),jspPage文件夹里可根据专类别属分若干子文件夹,再把相对应的JSP放在子文件夹里;
JS、CSS及图片等分别放在外面的文件夹里(与文件夹jspPage并列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是这种
2、在过滤的JAVA文件中,在doFilter方法里进行判断,将后缀名为.css、.js等直接设置为通过就行了,这种较为复杂,在一些特殊情况下才用到,一般不
⑧ 在Jsp页面或者Filter过滤器中怎么过滤脏话
不管是JSP还是Servlet,其Filter过滤器都是一个东西。因为JSP的本质就是Servlet,只不过是被包装了一下,成了标准,让Web服务器都遵循这个标准来解析编译执行而已。 以下演示的就是在JSP中如何过滤脏话(Servlet的处理方式也差不多): 一、 过滤器类 package com.filter;import java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class WordsFilter implements Filter { private Map< String, String>map = new HashMap< String, String>(); //过滤器的初始化 public void init(FilterConfig config) throws ServletException { String filePath = config.getInitParameter("filePath");//从配置文件中取得文件的相对路径 ServletContext context = config.getServletContext(); String realPath = context.getRealPath(filePath);//根据相对路径取得绝对路径 try { FileReader freader = new FileReader(realPath);//根据绝对路径,通过文件流来读取文件 BufferedReader br = new BufferedReader(freader); String line = null; while((line=br.readLine()) != null) { String []str = line.split("="); map.put(str[0], str[1]); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //乱码处理 request.setCharacterEncoding("gb2312"); response.setContentType("text/html;charset=gb2312"); HttpServletRequest HttpReq = (HttpServletRequest) request; HttpReqWrapper hrw = new HttpReqWrapper(HttpReq); hrw.setMap(map); chain.doFilter(hrw, response); } public void destroy() { System.out.println("--过滤器的销毁--"); } }二、请求包装器
package com.filter;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletRequestWrapper;public class HttpReqWrapper extends HttpServletRequestWrapper { private Map< String,String> map = null; public HttpReqWrapper(HttpServletRequest request) { super(request); } //过滤脏话 public String replace(String str){ StringBuffer sb = new StringBuffer(str); Setkeys = this.getMap().keySet(); Iteratorit = keys.iterator(); String ss = null; while(it.hasNext()) { String key = it.next(); int index = sb.indexOf(key); if(index != -1) { if(key != null) ss = key; sb.replace(index, index+key.length(), this.getMap().get(key)); } } if(ss!=null) { if (sb.toString().indexOf(ss) == -1) { return sb.toString(); } else { return replace(sb.toString()); } } return sb.toString(); }// 重写getParameter()方法 public String getParameter(String str) { if(str.equals("pager.offset")){ return super.getParameter(str); }else{ String content = super.getParameter(str); return replace(content); } } public Map< String,String> getMap() { return map; } public void setMap(Map< String,String> map) { this.map = map; } }
三、脏话列表word.txt妈的=**
老子=**
狗日的=***
我日=我*
TMD=***
我靠=我*
贱人=**
滚=*
操=*
四、web.xml中配置过滤器
<filter>
<filter-name>WordsFilter</filter-name>
<filter-class>com.filter.WordsFilter</filter-class>
<init-param>
<param-name>filePath</param-name>
<param-value>/WEB-INF/word.txt</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>WordsFilter</filter-name>
<url-pattern>/getNote.jsp</url-pattern>
</filter-mapping>
⑨ jsp 过滤器文件保存在哪
和普通的类文件一样对待就可以啦,可以放在src文件夹中,在项目中放在classes中,主要包的结构,在回web.xml中配置答使用这个过滤器:
<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>com.redv.projects.eadmin.util.filters.SetCharacterEncodingFilter </filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
⑩ JSP filter过滤器,怎样可以配置成除某几个jsp文件外,所有的jsp文件都过滤呢
你可以在xml文件里面去更改
你在里面好好的找找你过滤器的名字
过滤器默认的都是/*
你想保护什回么就吧*换成什么或者答是换成一个文件夹
如果你是昨晚项目在放的过滤器那就多弄几个过滤器
一个个来(麻烦,最好提前想好,把需要保护的放在一个包里面)