zoukankan      html  css  js  c++  java
  • JSP页面设置登录访问权限

    如何限制页面必须在满足某些条件后才能访问?

    比如下面这个例子:

     这是一个简单的登录界面,输入用户名和密码后,经过后台的验证,进入到相应的主界面

    按照常理来说是这样的,但是我们发现,当我们直接访问主界面main.jsp时,却也可以直接进入到主界面,比如:(注意URL)

    这就对系统造成了很大的安全隐患 
    怎么限制主界面必须在登录之后才能访问呢?其实也很简单

    首先,我们在后台验证用户正确登录之后,跳转到相应页面之前,加入下面这行代码

    if (userService.valiUser(user)) {

    session.setAttribute("user", user);

    当用户验证成功,使用setAttribute方法讲用户名以实例user存放在会话之中。

    然后我们新建一个islogin.jsp页面,这个页面不用做显示,专门用于验证访问权限,如下:

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"

    pageEncoding="ISO-8859-1"%>

    <%@ page import = "com.jkxy.service.userService" %>

    <%@ page import = "com.jkxy.model.userTable" %>

    <%

      userTable user = (userTable)session.getAttribute("user"); if(user ==null) {

    %>

    <jsp:forward page="index.jsp"></jsp:forward>

    <%

      }

    %>

    从会话中取出user实例,如果user实例存在,说明该页面之前已经验证过登录用户。如果不存在,那么就直接跳转到登录界面。

    然后你在你想要添加登录访问权限的页面jsp代码中相应位置插入代码

    <jsp:include page="islogin.jsp"></jsp:include>

    这样的话,当我们直接使用url访问main.jsp界面就不好使了

    还需要注意的是,在退出时需要清除用户痕迹,不然session中会一直存储user实例,所以在退出时还需要有以下动作:

    session.removeAttribute("user");

  • 相关阅读:
    计算机网络
    计算机网络知识总结
    final,static,super,this
    ArrayList
    基础面试题
    BATJ都爱问的多线程面试题
    Session过期、失效时间
    类加载器ClassLoader源码解析
    连接ftp服务器 JDK 1.7
    根据当前请求的特征,判断该请求是否来自手机终端
  • 原文地址:https://www.cnblogs.com/tanzq/p/8068393.html
Copyright © 2011-2022 走看看