导航:首页 > 净水问答 > 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过滤器没有过滤主页面相关的资料

热点内容
二类水体回用 浏览:731
丙烯酸固体树脂设备 浏览:492
九阳过滤净水器属什么 浏览:86
去水垢滤芯清洗后为什么不出水 浏览:144
住宅地下室污水提升器 浏览:761
pp超滤膜滤芯有什么优缺点 浏览:431
环氧树脂浆液什么样的好 浏览:82
无机陶瓷超滤膜对进水悬浮物要求 浏览:827
朗逸空气净化器怎么样 浏览:869
885树脂和888树脂那个好 浏览:627
净水器烧开水有水垢 浏览:565
从唐山回包头用隔离吗 浏览:786
如氯碱工业使用阴离子交换膜 浏览:12
西安水处理研究所 浏览:452
你错了有什么用怎么回 浏览:182
酚醛树脂液的凝胶温度 浏览:81
简单的污水处理方法是什么和什么 浏览:488
酚醛树脂是玻璃态吗 浏览:215
大智慧反向过滤信号 浏览:5
污水池清池时有什么毒气 浏览:101