}
}
package chapt21;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SessionLogic {
public static void printToBrowser(
HttpServletResponse resp, HttpServletRequest req) {
try {
/* ( , ) */
HttpSession session = req.getSession(true);
PrintWriter out = resp.getWriter();
StringBuffer url = req.getRequestURL();
session.setAttribute("URL", url);
out.write("My session counter: ");
/* , ( ) */
out.write(String.valueOf(prepareSessionCounter(session)));
out.write("<br> Creation Time: "
+ new Date(session.getCreationTime()));
out.write("<br> Time of last access: "
+ new Date(session.getLastAccessedTime()));
out.write("<br> session ID: "
+ session.getId());
out.write("<br> Your URL: " + url);
int timeLive = 60 * 30;
session.setMaxInactiveInterval(timeLive);
out.write("<br>Set max inactive interval: "
+ timeLive + "sec");
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("Failed: " + e);
}
}
/* */
private static int prepareSessionCounter(
HttpSession session) {
Integer counter =
(Integer)session.getAttribute("counter");
if (counter == null) {
session.setAttribute("counter", 1);
return 1;
} else {
counter++;
session.setAttribute("counter", counter);
return counter;
}
}
}
:
My session counter: 3
Creation Time: Sun Jan 29 16:02:30 EET 2006
Time of last access: Sun Jan 29 16:02:38 EET 2006
session ID: 314A546CD9270A840E0BDA3286636B20
Your URL: http://localhost:8080/FirstProject/SessionServlet
Set max inactive interval: 1800sec
: Integer URL , StringBuffer. SessionServlet HTML, , , () . session-config web.xml :
<session-config>
<session-timeout>30</session-timeout>
</session-config>
.
.
|
|
/* # 2: : TimeSessionServlet.java */
package chapt21;
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 TimeSessionServlet extends HttpServlet {
boolean flag = true;
protected void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException {
performTask(req, resp);
}
private void performTask(HttpServletRequest req,
HttpServletResponse resp) throws ServletException {
HttpSession session = null;
if (flag) {
//
session = req.getSession();
int timeLive = 10; // !
session.setMaxInactiveInterval(timeLive);
flag = false;
} else {
// ,
session = req.getSession(false);
}
TimeSession. go (resp, req, session);
}
}
package chapt21;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class TimeSession {
public static void go(HttpServletResponse resp, HttpServletRequest req, HttpSession session) {
PrintWriter out = null;
try {
out = resp.getWriter();
out.write("<br> Creation Time: "
+ new Date(session.getCreationTime()));
out.write("<br> Session alive! ");
out.flush();
out.close();
} catch (NullPointerException e) {
// ,
if (out!= null)
out.print("Session disabled!");
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("i/o failed: " + e);
}
}
}
:
Creation Time: Tue Aug 14 17:54:23 EEST 2007
Session alive!
10 , . , , :
Session disabled!
Cookie
Cookie.
Cookie , cookies. cookies. HTTP, Web-. Cookies , . (Single Signon), (token) ookies.
Cookie Netscape , . cookie , . cookie cookie, Web-.
|
|
cookie , Cookie, , -response. , .
Cookie cookie = new Cookie( " myid ", " 007 " );