现在的位置: 首页 > 综合 > 正文

JSP页面的访问控制

2013年02月15日 ⁄ 综合 ⁄ 共 2088字 ⁄ 字号 评论关闭

1、  如何实现访问控制

用户直接访问网站的某个页面,系统会去查询是否保存有该用户的登录信息,如果有,则显示该页面的内容,如果没有,就转入登录页面,要求用户登录网站。

访问控制流程

 

JSP为我们提供了一套会话跟踪机制,该机制可以维持每个用户的会话信息,也就是说,使用会话跟踪,可以为不同的用户保存不同的数据。

2、  什么是会话。

Web开发来说,一个会话就是用户通过浏览器与服务器之间进行的一次通话,它包含浏览器与服务器之间的多次请求、响应过程。

当用户向服务器发出第一次请求时,服务器会为该用户创建唯一的会话,会话将一直延续到用户访问结束,浏览器关闭,本次会话结束。

3、  JSP内置对象session

JSP提供了一个可以在多个请求之间持续有效的会话对象sessionsession对象充许用户存储和提取会话状态的信息。

session对象用来存储有关用户会话的所有信息。

session对象的常用方法:

void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到session中去。例如:session.setAttribute(“name”,”xinxin”); 把字符串xinxin存放到session中。

Object getAttribute(String key):根据键去获取session中存放的对象的值。

例如:String name = (String)session.getAttribute(“name”); 通过名称为name的键去获取session中存放的对象的值。

每个sesion对象都与浏览器一一对应,也就是说,重新开启一个浏览器窗口,相当于重新创建一个session对象,你在其他浏览器窗口保存的登录信息与新的浏览器窗口完全无关,所以系统会判定你尚未登录,必定跳转进入登录页面。

4、  include指令

JSP为我们提供了文件引用指令include。我们可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件,从而缓解代码的冗余问题,并且修改起来也更加方便,即对这些共性内容只需要修改那个独立的文件即可。

4.1、如果要为多个页面添加登录验证,有没有办法避免重复代码的出现。(权限控制)

       登录验证文件checklogin.jsp

       <%@ page import=”com.xinxin.entity.User” %>

       <%

              User user = (User)session.getAttribute(“LOGINED_USER”);

              If(user == null){

                     response.sendRedirect(“login.html”);

              }

       %>

在其他页面可以这样引用:

<%@ include file=”checklogin.jsp” %>

 

5、  JSP内置对象application

类似于系统的全局变量,用于实现用户之间的数据共享。

application对象的常用方法如下:

void setAttribute(String key,Object value):以键/值的方式,将一个对象的值存放到application中。例如:application.setAttribute(“LOGINED_USER”,new ArrayList()); 把一个ArrayList对象存放到application中去,它对应的键是LOGINED_USER

Object getAttribute(String key):根据键去获取application中存放对象的值。例如:

if(application.getAttribute(“LOGINED_USER”) != null) {

        List loginedUsers = (List)application.getAttribute(“LOGINED_USER”);

}

 

6、  JSP的内置对象

JSP的内置对象

内置对象名称

说明

out

用于向客户端输出数据

request

主要用于客户端的请求处理

response

用于响应客户请求并向客户端输出信息。

session

用来存储有关用户会话的所有信息。

application

类似于系统的全局变量,用于实现用户之间的数据共享。

pageContext

用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

config

用于存取servlet实例的初始化参数。

page

表示从该页面产生的一个servlet实例。

Exception

exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象

 

7、  产生随机数

可以使用Math类的random()方法生成0,0~1.0之间的随机数。

 

 

 

抱歉!评论已关闭.