做网站和网络推广,顺德乐从有做阿里巴巴的网站吗,wordpress本地编辑,南宁百度网站建设公司会话状态的维持是开发Web应用所必须面对的问题#xff0c;有多种方法可以来解决这个问题#xff0c;如使用Cookies#xff0c;hidden类型的表单域#xff0c;或直接把状态信息加到URL中等#xff0c;还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持#x…会话状态的维持是开发Web应用所必须面对的问题有多种方法可以来解决这个问题如使用Cookieshidden类型的表单域或直接把状态信息加到URL中等还有Servlet本身提供了一个HttpSession接口来支持会话状态的维持在这里我们主要介绍基于这个接口的会话状态的管理。Session的发明是为了填补HTTP协议的局限。请注意HTTP协议是如何工作的--用户发出请求服务器作出响应这种用户端和服务器端的联系就是离散的非连续的。HTTP协议不能提供允许服务器跟踪用户请求的功能。在服务器端完成响应用户的请求之后服务器不能继续与该浏览器继续保持连接。从服务器这端来看每一个请求都是独立的因此HTTP协议被认为是无状态协议当用户在多个主页间切换时服务器无法知道他的身份。 Session的出现就是为了弥补这个局限。利用Session您就可以当一个用户在多个主页间切换的时候也能保存他的信息。这样很多以前根本无法去做的事情就变得简单多了。在访问者从到达某个特定的主页到离开为止的那段时间每个访问者都会单独获得一个Session。Java Servlet定义了一个HttpSession接口实现的Session的功能在Servlet中使用Session的过程如下(1) 使用HttpServletRequest的getSession方法得到当前存在的session如果当前没有定义session则创建一个新的session还可以使用方法getSession(true)(2) 写session变量。可以使用方法HttpSession.setAttribute(namevalue)来向Session中存储一个信息。也可以使用HttpSession.putValue(namevalue)但这个方法已经过时了。(3)读Session变量。可以使用方法HttpSession.getAttribute(name)来读取Session中的一个变量值如果name是一个没有定义的变量那么返回的是null。需要注意的是从getAttribute读出的变量类型是Object必须使用强制类型转换比如String uid (String) session.getAttribute(uid);也可以使用HttpSession.getValue(name)但是这个方法也已经过时了。(4) 关闭session当时用完session后可以使用session.invalidate()方法关闭session。但是这并不是严格要求的。因为Servlet引擎在一段时间之后自动关闭seesion。下面举一个简单的例子说明session的使用//97色色 SessionExample.javaimport java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;//导入必要的软件包public class SessionExample extends HttpServlet{public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException, ServletException //实现doGet方法{response.setContentType(text/html); //设置HTTP头PrintWriter out response.getWriter(); //得到输出97ganHttpSession session request.getSession(true);//得到session对象//打印HTML标记out.println();out.println();out.println();out.println();out.println();Date created new Date(session.getCreationTime());//得到session对象创建的时间Date accessed new Date(session.getLastAccessedTime());//得到最后访问该session对象的时间out.println(ID session.getId());//得到该session的id并打印out.println(Created: created);//打印session创建时间out.println(Last Accessed: accessed);//打印最后访问时间session.setAttribute(UID,12345678);//在session中添加变量UID12345678session.setAttribute(Name,Tom);//在session中添加变量NameTomEnumeration e session.getAttributeNames();//得到session中变量名的枚举对象while (e.hasMoreElements()) { //遍历每一个变量String name (String)e.nextElement(); //首先得到名字String value session.getAttribute(name).toString();//由名字从97gan中得到值out.println(name value); //打印}out.println(); //打印HTML标记out.println();}}}