HttpServletRequest有兩個(gè)重載的getSession()方法,一個(gè)接受一個(gè)boolean的類型的值,另一個(gè)不帶任何參數(shù),getSession()方法和getSession(true)方法功能一樣,就是如果對(duì)應(yīng)的客戶端已經(jīng)產(chǎn)生過(guò)一個(gè)session,那么就會(huì)返回這個(gè)舊的session,否則,這個(gè)方法將會(huì)產(chǎn)生一個(gè)session ID并且和對(duì)應(yīng)的客戶端綁定在一起,而如果getSession(false)表示如果對(duì)應(yīng)的客戶端已經(jīng)有對(duì)應(yīng)的session,那么返回這個(gè)舊的session,否則不會(huì)產(chǎn)生新的session??梢允褂肏ttpSession對(duì)象上的isNow()方法來(lái)判定這個(gè)session是否為新建的
HttpSession常用方法
public void setAttribute(String name,Object value)
將value對(duì)象以name名稱綁定到會(huì)話
public object getAttribute(String name)
取得name的屬性值,如果屬性不存在則返回null
public void removeAttribute(String name)
從會(huì)話中刪除name屬性,如果不存在不會(huì)執(zhí)行,也不會(huì)拋處錯(cuò)誤.
public Enumeration getAttributeNames()
返回和會(huì)話有關(guān)的枚舉值
public void invalidate()
使會(huì)話失效,同時(shí)刪除屬性對(duì)象
public Boolean isNew()
用于檢測(cè)當(dāng)前客戶是否為新的會(huì)話
public long getCreationTime()
返回會(huì)話創(chuàng)建時(shí)間
public long getLastAccessedTime()
返回在會(huì)話時(shí)間內(nèi)web容器接收到客戶最后發(fā)出的請(qǐng)求的時(shí)間
public int getMaxInactiveInterval()
返回在會(huì)話期間內(nèi)客戶請(qǐng)求的最長(zhǎng)時(shí)間為秒
public void setMaxInactiveInterval(int seconds)
允許客戶客戶請(qǐng)求的最長(zhǎng)時(shí)間
ServletContext getServletContext()
返回當(dāng)前會(huì)話的上下文環(huán)境,ServletContext對(duì)象可以使Servlet與web容器進(jìn)行通信
public String getId()
返回會(huì)話期間的識(shí)別號(hào)
一個(gè)保存信息到session的簡(jiǎn)單例子
sessionlogin.html
復(fù)制代碼 代碼如下:
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>
復(fù)制代碼 代碼如下:
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 {
//如果用戶輸入過(guò)了用戶名 則將其放在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已經(jīng)創(chuàng)建");
out.println("
");
out.println("跳轉(zhuǎn)到其他a>頁(yè)面/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>
復(fù)制代碼 代碼如下:
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 = "";
//此處不是創(chuàng)建session 而是去取已經(jīng)創(chuàng)建的session
HttpSession session = request.getSession();
//如果已經(jīng)取到,說(shuō)明已經(jīng)登錄
if(session!=null)
{
username = (String)session.getAttribute("username");
out.println("獲得創(chuàng)建的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>
您可能感興趣的文章:- servlet Cookie使用方法詳解(六)
- servlet之cookie簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- java中Servlet Cookie取不到值原因解決辦法
- 全面了解servlet中cookie的使用方法
- Java Servlet及Cookie的使用
- servlet之session簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- servlet之session工作原理簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 淺談Servlet的Cookie和Session機(jī)制