java页面如何让未登录客户自动跳转到登录页面?
Admin 2023-06-05 群英技术资讯 1730 次浏览
这篇文章将为大家详细讲解有关“java页面如何让未登录客户自动跳转到登录页面?”的知识,下文有详细的介绍,小编觉得挺实用的,对大家学习或工作或许有帮助,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。我们可能经常会用到这一功能,比如有时,我们不希望用户没有进行登录访问后台的操作页面,而且这样的非法访问会让系统极为的不安全,所以我们常常需要进行登录才授权访问其它页面,否则只会出现登录页面,当然我的思路:
一种是在jsp页面进行session的判断,如果不存在该用户的session,就跳转到登录页面,否则执行jsp页面代码,但是你会发现这样做逻辑也简单,但是非常麻烦,如果有很多个jsp,那么就要写多个判断。
另一种则是利用过滤器,访问页面时都进行过滤验证,如果存在该用户session,则访问该页面,否则跳转到登陆页面登录,保存session后访问其它页面。
以下是我的实现
package com.test.filter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginFilter implements Filter {
public static final String login_page = "/test/admin/index.jsp";
public static final String logout_page = "/test/admin/Public/login.jsp";
public void destroy(){
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)throws ServletException, IOException {
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
String currentURL = request.getRequestURI();
String ctxPath = request.getContextPath();
//除掉项目名称时访问页面当前路径
String targetURL = currentURL.substring(ctxPath.length());
HttpSession session = request.getSession(false);
//对当前页面进行判断,如果当前页面不为登录页面
if(!("/admin/Public/login.jsp".equals(targetURL))){
System.out.println("1"+targetURL+"ctxPath:"+ctxPath+"currentURL:"+currentURL);
//在不为登陆页面时,再进行判断,如果不是登陆页面也没有session则跳转到登录页面,
if(session == null || session.getAttribute("admin") == null){
response.sendRedirect(logout_page);
return;
}else{
//这里表示正确,会去寻找下一个链,如果不存在,则进行正常的页面跳转
filterChain.doFilter(request, response);
return;
}
}else{
//这里表示如果当前页面是登陆页面,跳转到登陆页面
filterChain.doFilter(request, response);
return;
}
}
public void init(FilterConfig filterConfig)throws ServletException{
}
}
接下来在web.xml中进行配置
<filter> <filter-name>LoginFilter</filter-name> <filter-class>com.test.filter.LoginFilter</filter-class> </filter> <filter-mapping> <filter-name>LoginFilter</filter-name> //这里表示对所有的以jsp后缀的文件有效,其它的无效 <url-pattern>*.jsp</url-pattern> </filter-mapping>
那么,这样功能就实现了。
以上就是关于“java页面如何让未登录客户自动跳转到登录页面?”的介绍了,感谢各位的阅读,希望这篇文章能帮助大家解决问题。如果想要了解更多知识,欢迎关注群英网络,小编每天都会为大家更新不同的知识。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要为大家详细介绍了JSP+Servlet实现文件上传到服务器功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要为大家详细介绍了jsp+mysql实现网页的分页查询,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这篇文章主要介绍了jsp中sitemesh修改tagRule技术以及详细代码分析,有需要的朋友跟着小编一起学习参考下吧。
这篇文章主要介绍了基于javaweb+jsp实现的简单的个人日记管理系统,文中的示例代码对我们学习JSP和javaWeb有一定的帮助,感兴趣的可以学习一下
这篇文章主要介绍了Javaweb工程运行报错HTTP Status 404解决办法,文中通过示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008