##Sessionhtml
Session用於區分不一樣的用戶,每個session就表示一個用戶。 在jsp中javax.servlet.http.HttpSession對象。 Session在實際的操做中主要的功能是判斷用戶是否登錄。經常使用方法:java
No | 方法 | 描述 |
---|---|---|
1 | Public void setAttribute(String name,Object value) | 設置屬性 |
2 | Public Object getAttribute(String name) | 取得屬性 |
3 | Public void removeAttribute(String name) | 刪除屬性 |
4 | Public Boolean isNew() | 判斷是不是新的session |
5 | Public String getId() | 返回sessionID |
6 | Public void invalidate() | 讓session失效 |
7 | Public void setValue(String name),Object value) | 設置屬性 |
8 | Public Object getValue(String name) | 取得屬性 |
9 | Public void removeValue(String name) | 刪除屬性 |
setValue()之類的方法,是session最先的操做,若是在一些比較舊的書上可能會發現這樣的用法,由於後來爲了強調JSP中四種屬性範圍,因此將方法修改了。服務器
##2.session中的主要操做方法session
###1.1.取得sessionIDjsp
<%=session.getId()%>
###1.2.讓session失效:註銷spa
每次執行invalidate方法的時候,就表示session失效。 例子:code
<%=session.getId()%> //取得sessionID <% session.invalidate(); //讓session失效 %>
###1.三、session的主要功能在於系統登陸上orm
在全部的系統之中,session對象中使用最多的操做就是設置和取得屬性。 範例:login.jsphtm
<%@page contentType="text/html;charset=gbk"%> <center> <form action="login.jsp" method="get" > <table border="1" > <tr> <td colspan="2"><h1>登錄界面</h1></td> </tr> <tr> <td>用戶名:</td> <td><input type="text" name="name" /></td> </tr> <tr> <td>密 碼:</td> <td><input type="password" name="pwd" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="提交" /> </td> </tr> </table> </form> <% String name=request.getParameter("name"); String pwd=request.getParameter("pwd"); if(!(("".equals(name) || name==null) &&( "".equals(pwd) || pwd==null ))){ if(name.length()>5 && pwd.length()>5){ session.setAttribute("name",name); response.sendRedirect("welcome.jsp"); } else{ %> <h2><%="用戶名或密碼錯誤"%></h2> <% } } %> </center>
範例:welcom.jsp對象
<%@ page contentType="text/html;charset=gbk"%> <% if(session.getAttribute("name")!=null){ %> <h1>歡迎光臨!</h1> <h1><a href="loginout.jsp">註銷</a></h1> <% }else{ %> <h1>請先<a href="login.jsp">登陸</a>!</h1> <% } %>
爲程序加入註銷功能的頁面 範例:loginout.jsp
<% //註銷session, session.invalidate(); %>
一個好的程序,應該加入驗證碼的操做。
###1.4判斷是不是新的session
當用戶第一次鏈接到服務器的時候,能夠經過isNew()方法來判斷此用戶是不是新用戶。 範例:判斷新用戶
<%@page contentType="text/html;charset=gbk"%> <h1> <% if(session.isNew()){ %> <%="歡迎新用戶"%> <% }else{ %> <%="您是老用戶了!"%> <% } %> </h1>
此方法的原理其實是在於Cookie的設置上,回顧一下 若是用戶第一次訪問服務器的話,Cookie中並不會存在JSESSIONID 而若是用戶第二次訪問的話,Cookie中已經存在了JSESSIONID,因此就不認爲他是新用戶了。
##SESSION與Cookie的關係