sessionservlet.java

来自「J2EE开发与Weblogic一书中的源代码」· Java 代码 · 共 84 行

JAVA
84
字号
package com.learnweblogic.examples.ch3;

import java.io.*;
import java.text.DateFormat;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class SessionServlet extends HttpServlet {
    
    public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
        // Get the session object. Don't do this in real life.
        // Use getSession(false) and redirect the request to log in on failure.
        HttpSession session = req.getSession(true);
        
        // Retrieve the count value from the session
        Counter cntr = (Counter)
        session.getAttribute("sessiontest.counter");
        
        // Increment the counter. If the counter is not
        // currently contained in the session, create it
        if (null!=cntr) {
            cntr.increment();
        } else {
            cntr = new Counter();
            session.setAttribute("sessiontest.counter", cntr);
        }
        
        // set content type and obtain a PrintWriter
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        
        // then write the data of the response
        out.println("<HEAD><TITLE>SessionServlet Output</TITLE></HEAD><BODY>");
        out.println("<h1>SessionServlet Output</h1>");
        
        // And print out number of times the user has hit this page:
        out.println("You have hit this page <b>" + cntr.toString() +
        "</b> times.<p>");
        out.println("Click <a href=" + res.encodeURL("/SessionServlet") +
        ">here</a>");
        out.println(" to ensure that session tracking is working even " +
        "if cookies aren't supported.<br>");
        out.println("<p>");
    
        // Finally, demonstrate some of the more common methods in the
        // HttpSession object surrounding sessions:
        out.println("<h3>Request and Session Data:</h3>");
        out.println("Session ID in Request: " +
        req.getRequestedSessionId());
        out.println("<br>Session ID in Request from Cookie: " +
        req.isRequestedSessionIdFromCookie());
        out.println("<br>Session ID in Request from URL: " +
        req.isRequestedSessionIdFromURL());
        out.println("<br>Valid Session ID: " +
        req.isRequestedSessionIdValid());
        out.println("<h3>Session Data:</h3>");
        out.println("New Session: " + session.isNew());
        out.println("<br>Session ID: " + session.getId());
        DateFormat df = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.FULL);
        out.println("<br>Creation Time: " +
        df.format(new Date(session.getCreationTime())));
        out.println("<br>Last Accessed Time: " +
        df.format(new Date(session.getLastAccessedTime())));
        out.println("</BODY>");
    }
    
    class Counter implements Serializable {
        private int counter;
        public Counter() {
            counter = 1;
        }
        
        public void increment() {
            counter++;
        }
        
        public String toString() {
            return String.valueOf(counter);
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?