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);
}
}
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);
}
}