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/


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