Servlet中 Session的学习(写入Cookie和不写入Cookie)

1.利用写入Cookie查看Session的例子。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
import java.util.*;

//Session追踪

public class ShowSession extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String title = "Session Tracking Example";
HttpSession session = request.getSession(true);//
String heading;
// Use getAttribute instead of getValue in version 2.2.
Integer accessCount = (Integer) session.getAttribute("accessCount");//取accessCount的值。并转换成整行(integer)
if (accessCount == null) {
accessCount = new Integer(0); //如果是每一次进入,新NEW一个accesscount对像,值为整行数0

heading = "Welcome, Newcomer";

} else {
heading = "Welcome Back";
accessCount = new Integer(accessCount.intValue() + 1); //如果不是第一次,accessCount自动加1,heading的值转变
}
// Use setAttribute instead of putValue in version 2.2.
session.setAttribute("accessCount", accessCount);//写入值,name叫accessCount (红色) 值是accessCount(绿色)

out.println("<html><head><title>Session追踪</title></head>"
+ "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1 ALIGN=\"CENTER\">"
+ heading + "</H1>\n"
+ "<H2>Information on Your Session:</H2>\n"
+ "<TABLE BORDER=1 ALIGN=\"CENTER\">\n"
+ "<TR BGCOLOR=\"#FFAD00\">\n" + " <TH>Info Type<TH>Value\n"
+ "<TR>\n" + " <TD>ID\n" + " <TD>" + session.getId() + "\n" //如果Cookie被禁止,每次刷新,得到的session.getId()都发生变化。
+ "<TR>\n" + " <TD>Creation Time\n" + " <TD>"
+ new Date(session.getCreationTime()) + "\n" + "<TR>\n" //新建Session时的时间,如果Cookie被禁止,每次刷新转变。
+ " <TD>Time of Last Access\n" + " <TD>"
+ new Date(session.getLastAccessedTime()) + "\n" + "<TR>\n" //最后一次访问的时间。如果Cookie被禁止,每次刷新转变。
+ " <TD>Number of Previous Accesses\n" + " <TD>"
+ accessCount + "\n" + "</TABLE>\n" + "</BODY></HTML>"); //访问次数。如果Cookie被禁止,每次刷新为0。


}

/** Handle GET and POST requests identically. */

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

2。如果Cookie被禁止。利用URL重写方法的Session追踪小例子。


import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
import java.util.*;

//Session追踪

public class URLSession extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();

HttpSession session = request.getSession(true);

out.println("<html><head><title>Session追踪</title></head>"
+ "<BODY>\n"
+ "session id:" + session.getId() + "<br>"
+ "from url:" + request.isRequestedSessionIdFromURL() + "<br>"
+ "from cookie:" + request.isRequestedSessionIdFromCookie() + "<br>"
+ "<a href=" + response.encodeURL(request.getRequestURL().toString()) + ">test</a>"
+ "</BODY></HTML>"); //URL重写。连接记住刚的Session的ID ,cookie被禁止,点次连接,Session的ID 不会改变。

}

/** Handle GET and POST requests identically. */

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值