关于禁止直接访问登陆后跳转的相关界面拦截
来源:互联网 发布:关于大数据的毕业设计 编辑:程序博客网 时间:2024/06/18 14:08
在跳转主页的时候我们需要判断是否登录,如果直接访问主页 而没有登陆的时候则是需要被强制退出的。这就用到了所谓的拦截器。
创建一个LoginInterceptor 类,代码如下:
> /** > * 登录认证的拦截器 > */> public class LoginInterceptor implements > HandlerInterceptor{ //创建一个log4j日志管理器的实例,用于写日志 protected Logger > log4j = Logger.getLogger(getClass()); > /** > * Handler执行完成之后调用这个方法 > */ > public void afterCompletion(HttpServletRequest request, > HttpServletResponse response, Object handler, Exception exc) > throws Exception { > > } > > /** > * Handler执行之后,ModelAndView返回之前调用这个方法 > */ > public void postHandle(HttpServletRequest request, HttpServletResponse response, > Object handler, ModelAndView modelAndView) throws Exception { > } > > /** > * Handler执行之前调用这个方法 > */ > public boolean preHandle(HttpServletRequest request, HttpServletResponse response, > Object handler) throws Exception { > //获取请求的URL > String url = request.getRequestURI(); > //判断拦截的 // log4j.info("---requestURI:" + url); > //URL:login.jsp是公开的;这个demo是除了login.jsp是可以公开访问的,其它的URL都进行拦截控制 // if(url.indexOf("login.json")>=0){ // return > true; // } > if(url.indexOf("login.jsp")>=0){ > return true; > } > //获取Session > HttpSession session = request.getSession(); > String username = (String)session.getAttribute("username"); > > if(username != null){ > return true; > } > //不符合条件的,跳转到登录界面 // request.getRequestDispatcher("/view/login.jsp").forward(request, > response); > response.sendRedirect("/BillingSystem/"); > return false; > } }
创建好了拦截器类之后,我们需要去使用这个类,在配置文件中去调用它。在本项目中使用的是SpringMvc所以在mvc-servlet文件中进行如下配置:
<mvc:interceptors> <!-- 多个拦截器,顺序执行 --> <mvc:interceptor> <!-- 需拦截的地址 --> <mvc:mapping path="/*.json" /> <mvc:mapping path="/*.action" /> <!-- 需排除拦截的地址 --> <mvc:exclude-mapping path="/login.json"/> <bean class="com.lotuscard.javax.utils.LoginInterceptor"></bean> </mvc:interceptor> </mvc:interceptors> 就如上代码所示,拦截所有.json.action请求,出去login.json以外的所有请求。拦截之后的具体操作由LoginInterceptor决定
以上就是关于登录界面的拦截器。暂时先这么多吧, 以后想到什么再来补充 。
欢迎讨论
新浪微博 @我家女人从不撒娇
阅读全文
0 0
- 关于禁止直接访问登陆后跳转的相关界面拦截
- javaWeb项目用过滤器filter实现登陆成功后才能访问主页面,否则直接输入主页面的地址自动跳转到登陆界面
- SSH2登陆拦截配置(若登陆,则跳转到用户需要访问的网页,若没登录,直接跳转到登录页面)
- springmvc 登陆后跳转到登陆前的界面
- 登陆后跳转登录前界面
- 登陆界面登陆后页面的跳转及单例的…
- 关于禁止QQ登陆的禁止尝试
- 用户名密码登陆后,还是跳转到登陆界面
- 关于ubuntu修改profile后登陆界面循环的解决方法
- session超时后页面跳转到登陆页的js拦截方法
- 三.获取登陆cookie,并且利用cookie访问登陆后的界面
- 禁止空对象属性的直接访问
- ChinaNet无线接入后,浏览器自动跳转到登陆界面的原理
- Ubuntu16.04桌面版,想登陆后直接进入命令行界面
- Ubuntu16.04开机登陆后直接进入命令行界面
- 没有登陆返回登陆界面的拦截器的书写
- javafx之登陆界面的跳转
- 禁止ip直接访问
- ThinkPHP 向js模板中传递参数
- Makefile gcc shell
- 《深入理解mybatis原理》 Mybatis数据源与连接池
- java项目启动成功无异常,访问显示超时
- 5selenium+python 窗口alert跳转 登录成功
- 关于禁止直接访问登陆后跳转的相关界面拦截
- 剑指offer——46.扑克牌顺子
- Android动画之逐帧动画(FrameAnimation)详解
- trim()在IE8和谷歌浏览器中的不同
- Active X控件在IE上自动下载并注册
- 链表的归并排序算法
- vim 配置文件 .vimrc 脚本(Linux,Mac OS都可以用)
- Android--Paint与Canvas用法
- Android垃圾回收算法