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

1.什么是session  java

 

  • 表示客户端与服务器的一次会话。
  • 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号。session

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

public Object getAttribute(String name):返回与此会话中指定名称绑定在一块儿的对象,若是没有对象绑定在该名称下,则返回nulljsp

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

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

 

3.Session的生命周期this

建立:

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

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

活动:

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

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

除非本次会话的全部页面都关闭后再从新访问某个JSP或者Servlet将会建立新的会话。

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

销毁:

  1. 调用session.invalidate()
  2. Session过时(超时)
  3. 服务器从新启动。

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>密&nbsp&nbsp码</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>
相关文章
相关标签/搜索