Session和Cookie的区别
session是服务端的内置对象,不需要new。cookie不是内置对象,是服务端 产生 的,再 发送 给客户端保存,cookie里可以保存很多种文件,MP3MP4等,包括用户名密码,下次再用确实不用再次登录,但是不安全。
代码实现
代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
HttpSession session=request.getSession();
//获取用户Session
String heading=null;
Integer accesscount=(Integer)session.getAttribute("accesscount");
//getAttribute(“属性名”) 根据属性名 获取对应的值
if(accesscount==null){
accesscount=new Integer(1);
heading="欢迎你,首次登录!";//若登录次数为一,则heading显示欢迎你,首次登录!
}
else{
heading="欢迎你,再次登录!";//否则显示欢迎你,再次登录!
accesscount=accesscount+1;//访问次数+1
}
session.setAttribute("accesscount", accesscount);
//setAttribute()方法,setAttribute(“属性名”,”属性值”) 根据属性名设值
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>会话跟踪</TITLE></HEAD>");
out.println(" <BODY>");
out.print("<h4>"+heading+"<a href='Sessionservlet'>再次会话</a>");
//点击再次会话之后再次链接到Sessionservlet,再次访问
out.print("<table border='0'>");
out.println("<tr bgcolor=\"ffad00\"><td>信息</td>");
String state=session.isNew()?"新会话":"旧会话";
out.println("<tr><td>会话状态:<td>"+state+"\n");
out.println("<tr><td>会话ID:<td>"+session.getId()+"\n");
//getId():获取Session唯一的ID
out.println("<tr><td>已被访问次数:"+accesscount+"\n");
out.println(" </table>");
out.println("</center></body></HTML>");
out.flush();
out.close();
}