JSP内置对象(下)案例

session表示客户端与服务器的一次会话
web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这短时间,也就是用户浏览器、这个网站所花费的时间。
session实际上是一个特定的时间概念。
在服务器内存中保存着不同用户的session。
session对象是在第一个JSP页面被封在时自动创建,完成会话期管理。
从第一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种方法指定这是一个客户,就需要session对象。

session对象是HttpSession类的实例。

<body>
<h1>session对象</h1>
<hr/>
<%
	SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
	Date d=new Date(session.getCreationTime());
	session.setAttribute("username","admin");
	session.setAttribute("password","123");
	session.setAttribute("age","20");
	//设置当前session最大生成期限
	session.setMaxInactiveInterval(10);
%>
session的创建时间:<%=sdf.format(d) %>
<br/>
session的ID编号:<%=session.getId() %>
<br/>
从session中获取用户名:<%=session.getAttribute("username") %>;
<a href="session_page2.jsp" target="_blank">跳转到session_page2.jsp</a>
</body>
session_page2.jsp
<body>
<h1>跳转成功</h1>
session的IDbianh:<%=session.getId() %>
<br/>
从session中获取用户名:<%=session.getAttribute("username") %>;<br/>
session中保存的属性有
<%
	String[] names=session.getValueNames();
	for(int i=0;i<names.length;i++){
		out.println(names[i]+" ");
	}
%>
<br/>
</body>
session的生命周期
创建:当客户端第一次访问某个jsp或者servlet时候,服务器会为当前会话创建一个sessionid,
每次客户端想客户端发送请求时,都会将次sessionid携带过去,服务端会对此sessionid进行校验
活动:某次会话当中通过超链接打开的新页面属于同一次会话,2只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问统一项目资源时属于同一次会话
3除非本次会话的所有页面都关闭后在重新访问某个JSP或者Servlet将会创建新的会话。
注意:原有会话还存在,只是这个旧的sessionid仍然存在于服务端,只不过再也没有客户端会携带他然后交予服务端校验
销毁:三种方式1调用了session.invalidate()方法2session过期3服务器重新启动
aplication对象
1实现了用户间数据的共享,可存放全局变量
2开始于服务器的启动,终止于服务器的关闭
3在用户的前后链接或不同用户之间的链接中,可以对application对象的同一属性进行操作
常用方法
public void setAttribute(String name,Object value)使用指定名称将对象绑定到此会话
public Object getAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有则返回null
Enumeration getAttributeNames()返回所有可用属性名的枚举
String getServerInfo()返回JSP引擎名即版本号

<body>
<h1>application对象</h1>
<hr/>
<%
	application.setAttribute("city","北京");
	application.setAttribute("postcode","10000");
	application.setAttribute("email","lisi");
%>
所在城市是:<%=application.getAttribute("city") %><br/>
application中的属性有:<%
	Enumeration attributes=application.getAttributeNames();
	while(attributes.hasMoreElements()){
		out.println(attributes.nextElement()+" ");
	}
%><br/>
 JSP引擎的版本号:<%=application.getServerInfo() %>
</body>
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()克隆
String toString()把此对象转成string类的对象
void notify()唤醒一个等待的线程
void notifyAll()唤醒所有等待的线程
void wait()使一个线程处于等待直到被唤醒
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
pageContext对象可以访问到本页所在的session,也可以去本页面所在的application的某一属性值
pageContext对象现当于页面中所有功能的集大成者。
pageContext对象的本类名也叫pageContext。
exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。
如果一个JSP页面要应用此对象,就必须把isErrorPage设为true否则无法编译。
login.jsp
<body>
<div id="container">
	<div class="logo">
		<a href="#"></a>
	</div>
	<div id="box">
		<form action="dologin.jsp" method="post">
		<p class="main">
			<label>用户名:</label>
			<input name="username" value=""/>
			<label>密码:</label>
			<input type="password" name="password" value="">
			</p>
			<p class="space">
			 <!-- <input type="submit" value="提交" class="login" style="cursor" -->
			 <input type="submit" value="提交">
		</form>
			
		</div>
</div>
</body>
dologin.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<%
	String path=request.getContextPath();
	String username="";
	String password="";
	request.setCharacterEncoding("utf-8");
	username=request.getParameter("username");
	password=request.getParameter("password");
	if("admin".equals(username)&&"admin".equals(password)){
	session.setAttribute("loginUser",username);
	request.getRequestDispatcher("login_success.jsp").forward(request,response);
	}else{
	response.sendRedirect("login_failure.jsp");
	}
	%>
login_session.jsp
<body>
<div id="container">
	<div class="logo">
		
	</div>
	<div id="box">
		<%
			String loginUser="";
			if(session.getAttribute("loginUser")!=null){
				loginUser=session.getAttribute("loginUser").toString();
			}
		%>
		欢迎你<font color="red"><%=loginUser %></font>,登录成功
	</div>
</div>
</body>
login_failure.jsp
<body>
登录失败,返回登录!
<br/>
<a href="login.jsp">重新登录</a>
</body>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值