登录过滤
『壹』 java filter 登录进入死循环
没有解释?什么意思?登录进入过滤器,过滤器检测到没有登录又返回登录界面?无法进入JDBCController类?在web.xml的配置里不让它过滤login.do就ok了。
『贰』 设计用户过滤器 对需要保护的页面过滤 如果已经登录则允许访问 否则跳转到login.jsp
比如你将要需要登录后才能访问的页面放在main文件夹下,然后配置过滤器专时,将过滤路径设置为/main/*就可以属了,login.jsp不能放在main文件夹中,防止login.jsp也被过滤,造成死循环。。。。
『叁』 在页面中进行session过滤未登录访问
实现思路:先设置下session超时时间,之后直接在jsp页面中查看此session,如果没有的话,直接返回登专录界面
在属web.xml中的session-config配置session-timeout元素(WEB.XML文件中的元素)用来指定默认的会话超时时间间隔,以分钟为单位。该元素值必须为整数。如果 session-timeout元素的值为零或负数,则表示会话将永远不会超时。如:<session-config><session-timeout>30</session-timeout></session-config> //30分钟
在jsp页面中:
<%if session.Contents("username")=false thenresponse.Redirect("/index.jsp")end if
%>
『肆』 怎么搞一个servlet登录过滤器
把JSP页面全部放在WEB-INF下面 ,编写一个BaseServlet继承自HttpServlet,然后其余的servlet集成自BaseServlet,在这个servlet里面判断session,有值的时候转发到servlet里面 没有值的话 跳转到登陆页面 不就可以了?或者在filter里面写上
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
String uri = req.getRequestURI();
System.out.println( uri );
// 如果请求的路径是首页的资源,那么不需要过滤
if ( !"/loginServlet".equals(uri) && !"/".equals(uri) && !uri.startsWith("/img/") && !uri.startsWith("images") ) {
// 过滤请求,保证访问的资源一定要在用户登录后才可访问
HttpSession session = req.getSession();
if ( session.isNew() ) {
// 跳转到首页
resp.sendRedirect("/");
} else {
User user = (User)session.getAttribute(Const.SESS_PARAM_USER);
if ( user == null ) {
// 跳转到首页
resp.sendRedirect("/");
} else {
chain.doFilter(request, response);
}
}
} else {
chain.doFilter(request, response);
}
『伍』 如何用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(){}
}
『陆』 java单点登录用过滤器怎么实现
1、在普通站点A,B上配置抄过滤器,如果访问到A的页面时,先访问本地SESSION看是否登录,如果没有,则访问SSO看是否登录,如果没有则转到公共登录界面
2、公共登录界面登录完以后写SSO的SESSION,并通过地址栏返回给A登录的用户名
3、A写本地SESSION,完成登录过程。
4、当访问B应用时,先访问本地SESSION,未登录,则同样跳转到SSO,SSO取到本地SESSION的用户名,返回给B已登录。B写本地SESSION。完成登录过程。
5、A登出时,先杀本地SESSION,调用SSO的杀全局SESSION方法,SSO清空本地SESSION,同时也清空应用B的SESSION,完成单点登出。
『柒』 用过滤器判断用户是否登录,并且可以进行操作
你在session中设置来的是User对象,所以自你通过session去取时,也只能取到User对象
User user = (User) Session.getAttribute("loginUser");
然后判断user不为空和user.getUsername不为空
『捌』 使用filter过滤用户是否登录
登录成功后 将用户名放在session里面 在过滤器里面进行验证session是否为空 为空跳转到登录页面
『玖』 java程序实现登陆。用户没有登录但访问非登录的页面,使用过滤器跳转到登录页,登录后怎么回到访问页
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
if(req.getSession().getAttribute("user")==null){
req.setAttribute("error", "请你先登录");
//非法请求才会进到这里面,在这里保存请求的url地址,在成功登录后再进行跳转
req.getSession().setAttribute("goUrl", req.getRequestURL()+"?"+ req.getQueryString());
request.getRequestDispatcher("/ulogin.jsp").forward(request, response);
}
else{
chain.doFilter(request, response);
}
}
上面的代码是过滤器中的代码
下面的是servlet中的代码
if(request.getSession().getAttribute("goUrl")!=null){
String url = (String)request.getSession().getAttribute("goUrl");
response.sendRedirect(url);
}
else{
response.sendRedirect("/webshopping/index.jsp");
}