导航:首页 > 净水问答 > java过滤器没有过滤主页面

java过滤器没有过滤主页面

发布时间:2023-07-19 20:17:14

1. filter过滤器配置如何不过滤一些页面

直接添加多个文件映射啊,为每个需要进行过滤的文件都写个映射标签

2. java过滤器怎么不过滤一个页面里包含的多个请求

abstract public class FilterPerRequest implements Filter {

private static final Boolean FILTERED = true;
private ThreadLocal<Boolean> statusLocal = new ThreadLocal<Boolean>();

@Override
final public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
if (hasNotFiltering()) {
doFilterAndDispatchRequest(req, resp, chain);
return;
}
//dispatch request only
chain.doFilter(req, resp);
}

private boolean hasNotFiltering() {
Boolean status = statusLocal.get();
if (status == null) {
return true;
}
return false;
}

private void doFilterAndDispatchRequest(ServletRequest req,
ServletResponse resp, FilterChain chain) throws IOException,
ServletException {
try {
doFilterPerRequest(req, resp);
setFiltered();
chain.doFilter(req, resp);
} finally {
cleanFilterStatus();
}
}

abstract protected void doFilterPerRequest(ServletRequest req,
ServletResponse resp);

private void setFiltered() {
statusLocal.set(FILTERED);
}

private void cleanFilterStatus() {
statusLocal.set(null);
}

}
那要就情况而定了。。。
如果是request范围内的话,就可以使用上面的过滤器。
如果是session范围内的话,就需要在session内存储一个标志变量,方式和request差不多。
如果是限制用户操作的话,那就必须将用户操作持久化。
由于你的问题不明确,我也不好多说...

3. 为何java中的过滤器filter不起作用

过滤器配置正抄确,但却没有起到过滤作用,原因可能是排放位置的问题。如下:

错误:

<filter>
<filter-name>struts2</filter-name>
<filter-class>com.yiwo.base.web.filter.PrepareFilter</filter-class>
</filter>

<filter>
<filter-name>userFilter</filter-name>
<filter-class>com.yiwo.base.web.filter.UserFilter</filter-class>
</filter>

4. 如何用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);
}
为了让层次跟清晰一点,最好还是分文件夹。

5. java添加过滤器验证登录后无法跳转到登录界面

改成request.getRequestDispatcher("/login.jsp").forward(request, response);

6. java web项目里面的加了过滤器,在自己电脑上面测试项目的时候就打不开网页了,怎么回事

这是我自己写过的一个登陆过滤器

public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {

System.out.println("=============LoginFilter============");

//将父类转成子类
HttpServletRequest request=(HttpServletRequest) req;

//javaweb_T7/LoginServlet
String uri=request.getRequestURI();

//控制登录的
HttpSession session=request.getSession();
String userName=(String) session.getAttribute("userName");
//如果没有登录就跳转

//要么你session中有东西(已经登录) ,要么你是登录的动作
if(userName!=null || uri.indexOf("LoginServlet")!=-1){
//如果登录过,就不阻拦
chain.doFilter(req, res);
}else{
request.setAttribute("msg", "请先登录后操作");
request.getRequestDispatcher("login.jsp")
.forward(request, res);
}
}

7. 请教Java Filter过滤器中页面的跳转问题

filter只能对请求进行过滤处理,并不能直接跳转某个页面。servlet才能跳转页面的吧。

8. Java:现在Filter把所有请求都拦截了,怎么使Filter不过滤login.jsp页面呢

对于这种,抄我说两种方法:

1、将你所有的JSP页面单独放在一个文件夹里(假如jspPage),jspPage文件夹里可根据类别分若干子文件夹,再把相对应的JSP放在子文件夹里;
JS、CSS及图片等分别放在外面的文件夹里(与文件夹jspPage并列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是这种

2、在过滤的JAVA文件中,在doFilter方法里进行判断,将后缀名为.css、.js等直接设置为通过就行了,这种较为复杂,在一些特殊情况下才用到,一般不

9. java过滤器不过滤某个货某一些路径

<param-name>noLoginPaths</param-name> 参数名可自取

<filter>
<filter-name>LoginFilter</filter-name>
<filter-class>com.imooc.filter.LoginFilter</filter-class>
<init-param>
<param-name>noLoginPaths</param-name>
<param-value>login.jsp;fail.jsp;LoginServlet</param-value>
</init-param>
<init-param>
<param-name>charset</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

StringnoLoginPaths=config.getInitParameter("noLoginPaths");

关键代码 :

if(noLoginPaths!=null){
String[]strArray=noLoginPaths.split(";");
for(inti=0;i<strArray.length;i++){

if(strArray[i]==null||"".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1){
arg2.doFilter(arg0,arg1);
return;
}
}

}

完整代码:

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjavax.servlet.http.HttpSession;

{

privateFilterConfigconfig;

@Override
publicvoiddestroy(){

}

@Override
publicvoiddoFilter(ServletRequestarg0,ServletResponsearg1,FilterChainarg2)throwsIOException,ServletException{

HttpServletRequestrequest=(HttpServletRequest)arg0;
HttpServletResponseresponse=(HttpServletResponse)arg1;
HttpSessionsession=request.getSession();

StringnoLoginPaths=config.getInitParameter("noLoginPaths");

Stringcharset=config.getInitParameter("charset");
if(charset==null){
charset="UTF-8";
}
request.setCharacterEncoding(charset);

if(noLoginPaths!=null){
String[]strArray=noLoginPaths.split(";");
for(inti=0;i<strArray.length;i++){

if(strArray[i]==null||"".equals(strArray[i]))continue;

if(request.getRequestURI().indexOf(strArray[i])!=-1){
arg2.doFilter(arg0,arg1);
return;
}
}

}
if(session.getAttribute("username")!=null){
arg2.doFilter(arg0,arg1);
}else{
response.sendRedirect("login.jsp");
}

}

@Override
publicvoidinit(FilterConfigarg0)throwsServletException{
config=arg0;
}

}
阅读全文

与java过滤器没有过滤主页面相关的资料

热点内容
泰克马污水提升器无锡 浏览:926
水性热塑性树脂耐化性 浏览:779
史密斯净化器怎么重置滤芯 浏览:211
济源年产18万吨污水处理剂 浏览:328
厕所饮水机漏水什么情况 浏览:127
反渗透净水器如何接烧水壶 浏览:262
饮水机为什么不过滤水 浏览:416
海曙污水管道养护单位 浏览:431
雾化吸入加入蒸馏水 浏览:1
厦门超标排放污水量处罚办法 浏览:782
伊滨区污水处理厂地址 浏览:661
纯水机进水电磁阀为什么24v不到位 浏览:790
惠而浦直饮净水机多少钱 浏览:40
镀铬后的废水处理最方便 浏览:851
既热式饮水机怎么装前置过滤器 浏览:585
皮革行业含碱废水 浏览:288
鱼缸双侧过滤连接步骤 浏览:735
雨污水管线的材质 浏览:968
施特劳斯智饮机滤芯是什么 浏览:631
污水处理产业扶持政策有哪些 浏览:811