📄 requestcounterservlet.java
字号:
/* * Class.java * Example shows how to cound the request to a certain servlet * Created on October 9, 2002, 1:27 PM */package jwadbook.servlets;/** * * @author cai */import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.*;//import java.util.Calendar;public class RequestCounterServlet extends HttpServlet { private Vector counter; public void init() throws ServletException { counter = new Vector(); } public void doPost ( HttpServletRequest req, HttpServletResponse resp ) throws ServletException,IOException { RequestInfo reqinfo = new RequestInfo(getServletConfig()); GregorianCalendar current = new GregorianCalendar(); int hour = current.get(Calendar.HOUR_OF_DAY); int min = current.get(Calendar.MINUTE); String time = String.valueOf(hour) +":"+ String.valueOf(min); reqinfo.setCounter(req, getServletContext(), time); counter.add(reqinfo); String outformat = req.getParameter("outformat"); PrintWriter out = resp.getWriter(); resp.setContentType("text/html"); out.println(" <HTML> "); out.println(" <HEAD>"); out.println(" <TITLE>RequestCounterServlet</TITLE> "); out.println(" </HEAD> "); out.println(" <BODY BGCOLOR=white> "); out.println(" <CENTER> "); out.println(" <FONT COLOR='#009999' SIZE='4' face='Arial'> "); out.println(" <STRONG>Display the History to this Servlet</STRONG> "); out.println(" </FONT> "); out.println(" </CENTER> "); out.println(" <HR>"); Enumeration reqlist = counter.elements(); out.println("<CENTER>Total Request Number to this Servlet: " + counter.size() +" </CENTER><br> "); out.println("<CENTER>"); out.println ( "<TABLE Border=1 BGCOLOR=WHITE> "); while( reqlist.hasMoreElements() ) { out.println("<TR BGCOLOR='#99cee6'> <TH> Request Attribute </TH> </TR> "); RequestInfo nextreq = (RequestInfo)reqlist.nextElement(); if (outformat!=null) { if(outformat.equals("simple")) { out.println("<TR> <TD>" + nextreq.getSimpleOutput("<BR>") + " </TD></TR>" ); } } else { out.println("<TR> <TD>" + nextreq.getOutput("<BR>") + " </TD></TR>" ); } } out.println ( "</TABLE> "); out.println("</CENTER>"); out.println(" <HR> "); out.println(" </BODY> "); out.println(" </HTML> " ); out.flush(); } public void doGet ( HttpServletRequest req, HttpServletResponse resp ) throws ServletException,IOException { doPost(req,resp); } public String getServletInfo(){ return "Count Hit Servlet v1"; } protected class RequestInfo { public RequestInfo(ServletConfig sconfig) { this.sfg = sconfig; } private ServletConfig sfg; private String REQEST_TIME; private String AUTH_TYPE; private String CONTENT_LENGTH; private String CONTENT_TYPE; private String DOCUMENT_ROOT; private String PATH_INFO; private String PATH_TRANSLATED; private String QUERY_STRING; private String REMOTE_ADDR; private String REMOTE_HOST; private String REMOTE_USER; private String REQUEST_METHOD; private String SCRIPT_NAME; private String SERVER_PORT; private String SERVER_INFO; private String SERVER_NAME; private String SERVER_PROTOCOL; public void setCounter(HttpServletRequest req, ServletContext sc, String time) { REQEST_TIME = time; AUTH_TYPE = req.getAuthType(); CONTENT_LENGTH = String.valueOf(req.getContentLength()); CONTENT_TYPE = req.getContentType(); //DOCUMENT_ROOT = sfg.getServletContext().getRealPath("/"); DOCUMENT_ROOT = sc.getRealPath("/"); PATH_INFO = req.getPathInfo(); PATH_TRANSLATED = req.getPathTranslated(); QUERY_STRING = req.getQueryString(); REMOTE_ADDR = req.getRemoteAddr(); REMOTE_HOST = req.getRemoteHost(); REMOTE_USER = req.getRemoteUser(); REQUEST_METHOD = req.getMethod(); SCRIPT_NAME = req.getServletPath(); SERVER_NAME = req.getServerName(); SERVER_PORT = String.valueOf(req.getServerPort()); SERVER_PROTOCOL = req.getProtocol(); //SERVER_INFO = sfg.getServletContext().getServerInfo(); SERVER_INFO = sc.getServerInfo(); } public String getOutput(String eofl) { String output = "REQEST_TIME: " +REQEST_TIME + eofl + "AUTH_TYPE: " +AUTH_TYPE + eofl + "CONTENT_LENGTH: " +CONTENT_LENGTH + eofl + "AUTH_TYPE: " +AUTH_TYPE + eofl + "CONTENT_LENGTH: " +CONTENT_LENGTH + eofl + "CONTENT_TYPE: " +CONTENT_TYPE + eofl + "DOCUMENT_ROOT: " +DOCUMENT_ROOT +eofl + "PATH_INFO: " +PATH_INFO +eofl + "PATH_TRANSLATED: " +PATH_TRANSLATED + eofl + "QUERY_STRING: " +QUERY_STRING + eofl + "REMOTE_ADDR: " +REMOTE_ADDR + eofl + "REMOTE_HOST: " +REMOTE_HOST + eofl + "REMOTE_USER: " +REMOTE_USER + eofl + "REQUEST_METHOD: " +REQUEST_METHOD + eofl + "SCRIPT_NAME : " +SCRIPT_NAME + eofl + "SERVER_NAME: " +SERVER_NAME + eofl + "SERVER_PORT: " +SERVER_PORT + eofl + "SERVER_PROTOCOL: " +SERVER_PROTOCOL + eofl + "SERVER_INFO: " +SERVER_INFO + eofl; return output; } public String getSimpleOutput(String eofl) { String output = "REQEST_TIME: " +REQEST_TIME + eofl + "AUTH_TYPE" +AUTH_TYPE + eofl + "CONTENT_TYPE" +CONTENT_TYPE + eofl + "DOCUMENT_ROOT" +DOCUMENT_ROOT +eofl + "PATH_INFO" +PATH_INFO + eofl + "REMOTE_ADDR" +REMOTE_ADDR + eofl + "REMOTE_HOST" +REMOTE_HOST + eofl ; return output; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -