1、  如何实现访问控制

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

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

2、  什么是会话。

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

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

3、  JSP内置对象session

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

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之间的随机数。

JSP页面的访问控制相关推荐

  1. JSP 页面访问用户验证

    jsp安全性问题,当别人知道某个jsp文件的网址后就可以跳过登陆页面直接访问该jsp文件了,这样无法禁止外部无权限用户的访问.本文讨论内容是通过权限验证的用户,才可以访问特定的页面. JSP 页面验证 ...

  2. 用定制标签库和配置文件实现对JSP页面元素的访问控制

    用定制标签库和配置文件实现对JSP页面元素的访问控制 控制客户端访问是开发一个基于B/S的架构的系统的开发者必须考虑的问题.JSP或SERVLET规范的基于配置文件的安全策略对资源的控制是以文件为单位 ...

  3. Myeclipse中项目没有代码错误提示,jsp页面无编译迹象?如何解决

    在使用Myeclipse开发项目时,发现jsp页面中嵌入的java代码没有编译的迹象,错误的get方法没有报错,没有报错信息我们如何知道我们开发的内容是正确的呢? 接下来就演示一下如何解决

  4. 关于jsp页面中的pageEncoding和contentType以及html中的meta标签中字符集的设置(转)...

    转载:<关于JSP页面中的pageEncoding和contentType两种属性的区别> pageEncoding是jsp文件本身的编码 contentType的charset是指服务器 ...

  5. java jsp页面如何添加C标签

    在https://mvnrepository.com/找两个jar包分别是: <dependency> <groupId>javax.servlet.jsp.jstl</ ...

  6. jasp报错_jetty启动访问jsp页面报错

    jfinal3.5,jfinal jetty-server 2018.11,然后引入了apache-jsp和apache-jstl,访问jsp页面时还是提示org.apache.jasper.Jasp ...

  7. 在java中建个jsp文件_第一个jsp页面

    安装JDK,配置JDK开发环境: //配置JAVA_HOME,在系统环境变量中创建: //变量名:JAVA_HOME //变量值:(JDK所在的根目录) C:\Program Files\Java\j ...

  8. SpirngMVC jsp页面空指针

    SpirngMVC jsp页面空指针 ,这个错误基本上是jar包冲突,我看网上很多的方案 <dependency><groupId>javax.servlet</grou ...

  9. java图片文件字符串jsp_将图片转成base64字符串并在JSP页面显示的Java代码

    *本事例主要讲了如下几点: * 1:将图片转换为BASE64加密字符串. * 2:将图片流转换为BASE64加密字符串. * 3:将BASE64加密字符串转换为图片. * 4:在jsp文件中以引用的方 ...

最新文章

  1. VS2005中ajax安装指南[转]
  2. 阿里面试:索引失效的场景有哪些?索引何时会失效?
  3. MySQL笔记4:desc命令的两个用法
  4. 如何在Simulink中添加延迟环节
  5. linux终端常用命令和windows终端常用命令对比
  6. 判断 CGRect是否“为空”
  7. 【Nginx】通过反向代理配置本地图床功能
  8. Android布局_LinearLayout布局
  9. sql decimal 转string_音频怎么转文字?这个软件带你体验飞一般的感觉
  10. Leetcode每日一题:28.implement-strstr(实现strStr())
  11. 尝试使用iReport4.7(基于Ubuntu Desktop 12.04 LTS)
  12. Android Studio 编译输出中文乱码的解决办法
  13. Python开发语音聊天机器人
  14. 第二章:x264视频制作meGUI工具安装
  15. 牛客网-前端刷题记录(简单级)
  16. 深入理解GAN对抗生成网络
  17. 天宝AMD 300U物理机安装黑群晖处理内存不足的问题
  18. SpringCloud的实用篇
  19. textarea的placeholder怎么实现换行-新的方法
  20. 网络对抗 Exp4 恶意代码分析 20154311 王卓然

热门文章

  1. 【刷题】2.BM3 链表中的节点每k个一组翻转
  2. 体验家推出CEM报告 | 从入门到精通——文本分析应用指南
  3. Java中线程安全的集合
  4. 第30关:删除顺序表中指定值的所有元素
  5. 题解【acwing】95 费解的开关
  6. dfa matlab用法,用MATLAB实现DFA算法及报告.doc
  7. oppo手机用计算机充满电,OPPO手机的充电小技巧,打开这个开关,让你充一次电可玩三天...
  8. 最值得推荐的任务悬赏平台
  9. 巧用Windows 10 Xbox进行屏幕录像
  10. 好事多磨!《轩辕剑》电视剧版几经周折即将开机