|
HttpServletRequest有兩個重載的getSession()方法,一個接受一個boolean的類型的值,另一個不帶任何參數,getSession()方法和getSession(true)方法功能一樣,就是如果對應的客戶端已經產生過一個session,那么就會返回這個舊的session,否則,這個方法將會產生一個session ID并且和對應的客戶端綁定在一起,而如果getSession(false)表示如果對應的客戶端已經有對應的session,那么返回這個舊的session,否則不會產生新的session??梢允褂肏ttpSession對象上的isNow()方法來判定這個session是否為新建的
HttpSession常用方法
public void setAttribute(String name,Object value)
將value對象以name名稱綁定到會話
public object getAttribute(String name)
取得name的屬性值,如果屬性不存在則返回null
public void removeAttribute(String name)
從會話中刪除name屬性,如果不存在不會執行,也不會拋處錯誤.
public Enumeration getAttributeNames()
返回和會話有關的枚舉值
public void invalidate()
使會話失效,同時刪除屬性對象
public Boolean isNew()
用于檢測當前客戶是否為新的會話
public long getCreationTime()
返回會話創建時間
public long getLastAccessedTime()
返回在會話時間內web容器接收到客戶最后發出的請求的時間
public int getMaxInactiveInterval()
返回在會話期間內客戶請求的最長時間為秒
public void setMaxInactiveInterval(int seconds)
允許客戶客戶請求的最長時間
ServletContext getServletContext()
返回當前會話的上下文環境,ServletContext對象可以使Servlet與web容器進行通信
public String getId()
返回會話期間的識別號
一個保存信息到session的簡單例子
sessionlogin.html
復制代碼 代碼如下:
<meta name="keywords" content="keyword1,keyword2,keyword3" />
<meta name="description" content="this is my page" />
<meta name="content-type" content="text/html; charset=UTF-8" />
<!-- <link rel="stylesheet" type="text/css" href="./styles.css">--></pre>
<form action="servlet/saveinfo" method="post">
用戶名:
<input type="text" name="username" /> <input type="submit" />
密碼:
<input type="password" name="userpasswd" />
</form>
<pre>
</pre>
</div>
<div>
復制代碼 代碼如下:
package chap03;
import Java.io.IOException;
import Java.io.PrintWriter;
import Javax.servlet.ServletException;
import Javax.servlet.http.HttpServlet;
import Javax.servlet.http.HttpServletRequest;
import Javax.servlet.http.HttpServletResponse;
import Javax.servlet.http.HttpSession;
public class saveinfo extends HttpServlet {
/**
* Constructor of the object.
*/
public saveinfo() {
super();
}
/**
* Destruction of the servlet.
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet.
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//如果用戶輸入過了用戶名 則將其放在session中
if(request.getParameter("username")!=null);
{
HttpSession session = request.getSession();
session.setAttribute("username",request.getParameter("username"));
}
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
out.println("session已經創建");
out.println("
");
out.println("跳轉到其他<a>頁面</a>");
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
/**
* Initialization of the servlet.
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}</pre>
</div>
<div>
復制代碼 代碼如下:
package chap03;
import Java.io.IOException;
import Java.io.PrintWriter;
import Javax.servlet.ServletException;
import Javax.servlet.http.HttpServlet;
import Javax.servlet.http.HttpServletRequest;
import Javax.servlet.http.HttpServletResponse;
import Javax.servlet.http.HttpSession;
public class getsession extends HttpServlet {
/**
* Constructor of the object.
*/
public getsession() {
super();
}
/**
* Destruction of the servlet.
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet.
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
String username = "";
//此處不是創建session 而是去取已經創建的session
HttpSession session = request.getSession();
//如果已經取到,說明已經登錄
if(session!=null)
{
username = (String)session.getAttribute("username");
out.println("獲得創建的Session");
out.println("
");
out.println("登錄名:"+username);
}
else
{
response.sendRedirect("../sessionlogin.html");
}
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
/**
* Initialization of the servlet.
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}</pre>
</div>
<div></div>
<div>
jsp技術:servlet中session簡介和使用例子,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。