Ⅰ 如何用Filter实现对注册用户是否登录的过滤
下面是我从前写的项目里用的用户过滤。供你参考。你可以去www.mldn.cn上看看,那儿有过滤器的视频教程。
package filter;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.* ;
//对用户是否登录进行过滤
public class UserFilter implements Filter
{
//过滤器初始化
public void init(FilterConfig filterConfig) throws ServletException
{
}
//实现Filter接口主方法
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws ServletException,IOException
{
response.setContentType("text/html ;charset=GBK");
request.setCharacterEncoding("GBK");
PrintWriter out=response.getWriter();
HttpServletRequest req=(HttpServletRequest)request;
HttpSession session=req.getSession();
//System.out.println(session.getAttribute("user"));
//user是用户登录后session.setAtrribute("user",×××)中的user
if(session.getAttribute("user")!=null){
chain.doFilter(request, response);
}
else{//未登录,后退
out.println("<script language='javascript'>alert('你还未登录');");
out.println("history.go(-1);</script>");
}
}
//过滤器销毁
public void destroy(){}
}
Ⅱ 在filter中,我要过滤所有JSP和action,但登录页login.jsp和login.action不能过滤,这样的话怎么配置
把login.jsp换一个后缀嘛,比如login.htm
Ⅲ web.xml lt;filter-mapping>我不想过滤html文件,怎么设置
你可以设置想过滤源的动作,这样就不过滤html了。比如下面这样:
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.usl</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
Ⅳ Java:现在Filter把所有请求都拦截了,怎么使Filter不过滤login.jsp页面呢
对于这种,抄我说两种方法:
1、将你所有的JSP页面单独放在一个文件夹里(假如jspPage),jspPage文件夹里可根据类别分若干子文件夹,再把相对应的JSP放在子文件夹里;
JS、CSS及图片等分别放在外面的文件夹里(与文件夹jspPage并列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是这种
2、在过滤的JAVA文件中,在doFilter方法里进行判断,将后缀名为.css、.js等直接设置为通过就行了,这种较为复杂,在一些特殊情况下才用到,一般不
Ⅳ 我用纯servlet写了个登录验证小项目我想用filter过滤,即必须通过登录往下走,否则跳回登录页面
这个,还是这做的好,这是最基本的了。给你思路:你要配置拦截路径,除了登录,注册外,其他的页面都放到一个新的文件夹下如file,然后配置拦截,/file/*就可以了。
祝,学习顺利。
Ⅵ 怎么让filter不过滤某几个动作
判断uri的是不是这制三个
如果是这三个,不做处理,直接直接 下一步
=================
唉,直接给你看源码吧
在doFilter方法里写上
String contextPath = InitObjects.getContextPath();
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
//获得用户请求的uri
String uri = httpServletRequest.getRequestURI();
//eccludedPages是个List,存放着比如index.jsp,error.jsp等不需要过滤的页面
if (!excludedPages.contains(uri)) {
}
}
filterChain.doFilter(request, response);
Ⅶ 使用filter过滤用户是否登录
登录成功后 将用户名放在session里面 在过滤器里面进行验证session是否为空 为空跳转到登录页面
Ⅷ 急!如何让过滤器不过滤页面中引用的CSS或JS页面
对于这种,我说两种方法:
1、将你所有的JSP页面单独放在一个文件夹里专(假如jspPage),jspPage文件夹里可根据属类别分若干子文件夹,再把相对应的JSP放在子文件夹里;
JS、CSS及图片等分别放在外面的文件夹里(与文件夹jspPage并列)
再:<url-pattern>/jspPage/*</url-pattern>就行了
一般用的就是这种
2、在过滤的JAVA文件中,在doFilter方法里进行判断,将后缀名为.css、.js等直接设置为通过就行了,这种较为复杂,在一些特殊情况下才用到,一般不推荐
Ⅸ 如何用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);
}
为了让层次跟清晰一点,最好还是分文件夹。
Ⅹ filter过滤器配置如何不过滤一些页面
直接添加多个文件映射啊,为每个需要进行过滤的文件都写个映射标签