怎么使用filter实现未登录用户自动跳转到登录页面 未登录的过滤器怎么写
- 综合知识
- 关注:1.87W次
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");
}
2.怎么使用filter实现未登录用户自动跳转到登录页面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");}。
3.如何用Filter实现对注册用户是否登录的过滤下面是我从前写的项目里用的用户过滤。供你参考。你可以去上看看,那儿有过滤器的视频教程。
package filter;
import java.io.*;
import javax.servlet.*;
import javax.servlet. ;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(){}
}
4.如何使用filter实现未登录用户自动跳转到登录页面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");}。
5.java过滤器怎么写 用的是SSH框架 主要目的是防止有些比如登录不填在web.xml中配置过滤器
<filter>
<filter-name>encoding</filter-name>
<filter-class>;此处是自己已实现filter类的目录</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<url-pattern>;此处是要过滤的路径</url-pattern>
<filter-name>encoding</filter-name>
</filter-mapping>
- 文章版权属于文章作者所有,转载请注明 https://shqsg.com/zh-cn/zonghezhishi/lyw45w.html