jsp+servlet怎样防止用户用URL直接访问页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp+servlet怎样防止用户用URL直接访问页面相关的知识,希望对你有一定的参考价值。

参考技术A 过滤器 或者把需要保护的资源放进WEB-INF 参考技术B JSP放在WEB-INF目录下,页面访问都靠Servlet forward. 参考技术C 你是说没经过登录不可以直接访问页面?还是无论用户登录不登录都不允许访问?追问

必须登录才能访问后面的页面。不然。光用地址进不去。

追答

你可以这样:
把你登录后的才能访问的页面路径前都加/login/
然后在XML配置文件里自定义一个servelet,path设置为/login/*,然后这个servelet对登录状态判断,如果登录就不做动作,如果没登陆这个servelet就让网址跳转到登录页面。
相当于过滤器还是拦截器。。。忘了

本回答被提问者采纳
参考技术D 用拦截器啊 去百度一下就知道了 我就 不上代码了

前端防止url输入地址直接访问页面

首先,解决这个问题要搞明白此url是从程序内部跳转还是直接在地址栏输入的,如果是程序内部跳转,那就好办啦。方法如下:

  判断用户是否登录状态,是否携带token

  使用router.beforeEach注册一个全局前置守卫,判断用户是否登录。

  

router.beforeEach((to, from, next) => 
   if (to.path === ‘/login‘) 
      next();
      console.log(next)
    else // 每次页面跳转执行,token或openId錯誤,均提示跳转到首页
      let token = sessionStorage.getItem(‘token‘);
      console.log(token)
      if (token === null || token === ‘‘ || token === undefined) 
         Toast(‘token错误,请重新登录‘)
         setTimeout(function () 
            next(‘/login‘);
         ,1000)
      else
         next();
      
   
);

 

 HttpRequestServlet.getHeader(‘Referer’)的值如果是空的,说明此url是地址栏直接访问的,像这种的需要拦截,然后时期返回登录页面!反之则是从程序内部跳转,可以放行!

 

以上是关于jsp+servlet怎样防止用户用URL直接访问页面的主要内容,如果未能解决你的问题,请参考以下文章

漫画 | Servlet属于线程安全的吗?

jsp防止直接通过url访问没有权限的页面

如何禁用从 url 直接访问 jsp 页面的页面

servlet中的doGet()与doPost()是怎

如何防止通过url地址栏直接访问后台

怎么样让servlet访问web-inf下的网页或jsp文件