HttpSession的简单使用

HttpSession常用方法

void setAttribute(String name, Object value)
设置属性值
Object getAttribute(String name)
获取上面设定的值,注意反回的是Object,需要进行(强制转化)
void invalidate()
解除session的绑定

代码


<body>
	<p>请输入用户名和密码:</p> 
	<form id="login" method="post" action="./abc/LoginServlet">
		用户名:<input type="text" name="username" width="100"/><br/>
		密码:<input type="password" name="password" width="100"/> <br/>	
		<input type="submit" name="登录" value="上交表单">
	</form>
</body>


	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		String encoding;
		ServletConfig config=this.getServletConfig();
		encoding=config.getInitParameter("encoding");
		request.setCharacterEncoding(encoding);
		response.setContentType("text/html;charset="+encoding);//设置编码
		PrintWriter out=response.getWriter();//获取输出到网页的对象
		HttpServletRequest requ=(HttpServletRequest)request;
		HttpSession session=requ.getSession();//获得session
		String uesrValue=(String)session.getAttribute("user");//获取session存储的属性值
		String params[]=session.getValueNames();//获得session里所有的属性名
		out.println("session中参数的个数:"+params.length+"<br/>");
		if(uesrValue==null){//还没有登录过
			String username=request.getParameter("username");//从表单中获取用户名
			String password=request.getParameter("password");//从表单中获取密码
			out.println("你还未登录<br/>");
			session.setAttribute("user", username);//设定session中的用户名
			session.setAttribute("password",password);//设定session中的密码
			out.println(session.getId());//打印session ID			
		}
		else{
			String username=(String)session.getAttribute("user");//从session中获取用户名
			String password=(String)session.getAttribute("password");//从session获取密码
			out.println("用户名:"+username+"<br/>");
			out.println("密 码:"+password+"<br/>");
			session.invalidate();//使session无效
		}
		out.close();
		//Cookie里不能有中文
//		Cookie cookie1=new Cookie("usrname","bcd");
//		Cookie cookie2=new Cookie("password","buzhidao");
//		response.addCookie(cookie1);
//		response.addCookie(cookie2);
//		response.sendRedirect("/JavaEEDemo/first.jsp");
	}



运行结果

登录界面 


第一次登录

第二次登录


由于在第二次登录后,使session无效了,所以第三次与第一次登录session的id不同。

更多方法介绍请参阅http://docs.oracle.com/javaee/7/api/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章