java在Servlet中存取Session

2013-02-26 17:20:39 阅读( 576 )

2315人 收藏本页

标签:Java面试题

下面例子演示如何在HttpServlet中存取Session。 Session实例可以通过HttpServletRequest的getSession()方法获得,此方法会返回一个布尔值来表示是否成功得到了Session。

然后我们尝试获得键名为“VisitCounter”的session值,然后将获得的值转换为Integer对象。 如果是空则说明session还没有设置,就往session中添加VisitCounter。 否认则对VisitCounter+1并保存到session中。

import java.io.*;

import javax.servlet.*;
import javax.servlet.http.*;

/**
* Example Servlet
* @author outofmemory.cn
*/
public class ExampleServlet extends HttpServlet {

/** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();

printPageStart(out);

//Obtain the session object, create a new session if doesn't exist
HttpSession session = request.getSession(true);

//Check if our session variable is set, if so, get the session variable value
//which is an Integer object, and add one to the value.
//If the value is not set, create an Integer object with the default value 1.
//Add the variable to the session overwriting any possible present values.
Integer param = (Integer) session.getAttribute("MySessionVariable");
if (param != null) {

session.setAttribute("MySessionVariable", new Integer(param.intValue() + 1));
param = (Integer) session.getAttribute("MySessionVariable");

} else {

param = new Integer(1);
session.setAttribute("MySessionVariable", param);

}

out.println("You have displayed this page <b>" + param.intValue() + "</b> times this session.<br/><br/>");
out.println("Hit the browsers refresh button.");

printPageEnd(out);
}

/** Prints out the start of the html page
* @param out the PrintWriter object
*/
private void printPageStart(PrintWriter out) {

out.println("<html>");
out.println("<head>");
out.println("<title>Example Servlet of how to store and retrieve session variables</title>");
out.println("</head>");
out.println("<body>");

}

/** Prints out the end of the html page
* @param out the PrintWriter object
*/
private void printPageEnd(PrintWriter out) {

out.println("</body>");
out.println("</html>");
out.close();
}
}

下一篇:java读入用户控制台输入,并写文件

上一篇:java Servlet实现跳转到另一个url

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题