您的位置:首页 > Web前端 > JavaScript

【JSP笔记】第四章 JSP内置对象【下】

2016-09-24 00:00 387 查看
1.什么是session

表示客户端与服务器的一次会话。

Web中的session指用户浏览网站时,从进入网站到浏览器关闭的这段时间。

session实际上是一个特定的时间概念。

保存在服务器当中,和用户一一对应。

2.session对象

是一个JSP内置对象。

在第一个JSP页面被装载是自动创建,完成一次客户端与服务器端的会话管理。

从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器的结束,被称作一个会话。

当一个客户访问一个服务器是,可能在服务器几个页面之间切换,服务器应当通过某种办法值得这是一个客户,这就需要session对象。

session对象是HttpSession类的实例。

常用方法:

long getCreationTime():返回session创建时间。

import="java.util.*,java.text.*"

........................

<%

SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss") ;

Date d=new Date(session.getCreationTime());

%>

session创建时间:<%= sdf.format(d) %>

public String getId():返回session创建时JSP引擎为它设的唯一ID号。

public Object setAttribute(String name,Object value):指定名称将对象绑定到次会话。

public Object getAttribute(String name):返回与此会话中指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null

String[] getValueNames():返回一个包含此session中所有可用属性的数组。

int getMaxInactiveInterval():返回两次请求间隔多长时间 此session被取消(单位秒)

3.Session的生命周期

创建:

当客户端第一次访问某个JSP火这Servlet的时候,服务器会为当前会话创建一个SessionId,

每次客户端想服务器端发送请求时,都会将此SessionId携带携带过去,服务端会对此SessionId进行校验。

活动:

某次会话当中通过超链接打开的新页面属于同一次会话。

只有当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一项目资源时属于同一次会话。

除非本次会话的所有页面都关闭后再重新访问某个JSP或者Servlet将会创建新的会话。

注意事项:原来的会话还存在,只是这个旧的SessionId仍然存在与服务端,只不过再也没有客户端会携带它交于服务端校验。

销毁:

调用session.invalidate()

Session过期(超时)

服务器重新启动。

4.application对象:

实现了用户间数据的共享,可存放全局变量。

开始于服务器的启动,终止于服务器的关闭。

在用户的前后链接或不同用户之间的连接中,可以对application对象的同一属性进行操作。

在任何地方对application对象属性的操作,都将影响到其他用户对此的访问。

服务器的启动和关闭决定了application对象的生命。

application对象是ServletContext类的实例。

常用方法:

public void setAttribute(String name,Object value):使用指定名称将对象绑定。

public Object getAttribute(String name)返回此对话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null.

Enumeration getAttrbuteNames()返回所有可用属性名的枚举

String getServerInfo():返回JSP(Servlet)引擎名和版本号。

5.page对象:

就是指向当前JSP页面本身,有点像类中的this指针。他是java.lang.Object类的实例。

常用方法:

class getClass():返回此Object的类。

int hashCode():返回此Object的hash码。

boolean equals(Object obj):判断此Object是否与指定的Object对象相等。

void copy(Object obj):把此Object拷贝到指定的Object对象中。

Object clone():克隆此Object对象。

String toString():把此Object对象转换成String类的对象。

void notify():唤醒一个等待的线程。

void notifyAll():唤醒所有等待的线程。

void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒。

void wait():使一个线程处于等待 直到被唤醒。

6.pageContext对象:

提供了对JSP页面内所有的对象及名字空间的访问。

可以访问到本页所在的session,也可以取本页面所在的application的某一属性值。

相当于页面中所有功能的集大成者。

本类名也叫pageContext.

常用方法

JspWriter getOut(): 返回当前客户端响应被使用的JspWriter流(out)。

HttpSession getSession():返回当前页中的HttpSession对象(session)

Object getPage(): 返回当前页的Object对象(page)

ServletRequest getRequest(): 返回当前页面的ServletRequest对象(request)

ServletResponse getResponse():返回当前页面的ServletRequest对象(response)

void setAttribute(String name,Object attribute):设置属性及属性值。

Object getAttribute(String name,int scope):在指定范围内取属性值。

int getAttributeScope(String name):返回某属性的作用范围。

void forward(String relativeUrlPath):使当前页面重导到另一页面,

void include(String relativeUrlPath):在当前位置包含另一文件。

7.Config对象:

config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所用到的参数(通过属性名和属性值构成)记忆服务器的有关信息(通过传递一个ServletContext对象),

常用方法:

ServletContext getServletContext():返回包含服务器相关信息的ServletContext对象。

String getInitParameter(String name): 返回初始化参数的值,

Enumeration getInitParameterNames():返回Servlet初始化所需 所有参数的枚举。

8.Exception对象:

使一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象,

如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。

他实际上是java.lang.Throwable的对象。

常用方法:

String getMessage():返回描述异常的消息。

String toString():返回关于异常的简短描述消息。

void pringStackTrace():显示异常和栈轨迹。

Throwable FillInStackTrace():重写异常的执行栈轨迹。

9.阶段小案例:用户登录小例子

login.jsp

<h2>登录界面</h2>
<form action="dologin.jsp" method="post">
<label>用户名</label>
<input type="text" name="name"><br>
<label>密  码</label>
<input type="password" name="password" vale=""><br>
<input type="submit" value="登录">
</form>

dologin.jsp

//中文乱码
request.setCharacterEncoding("utf-8");
String username="";
String password="";
username=request.getParameter("name");
password=request.getParameter("password");

if("admin".equals(username)&&"admin".equals(password)){
//传递用户名值
session.setAttribute("loginUsers",username);
request.getRequestDispatcher("login_success.jsp").forward(request,response);
}else
{
response.sendRedirect("login_failure.jsp");
}

login_success.jsp

<h2>登录成功</h2><br>
<%
String  ssname="";
//防止用户名为空
if(session.getAttribute("loginUsers")!=null){
ssname=session.getAttribute("loginUsers").toString();
}
%>
<a>欢迎会员<font color=red ><%= ssname %></font> 登录</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  笔记 JSP