📄 snoopservlet.java
字号:
/*源代码清单5-7*/
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SnoopServlet extends HttpServlet
{
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException
{
//发送给服务器的信息不能超过8K
if(req.getContentLength()>8*1024)
{
res.setContentType("text/html");
ServletOutputStream out = res.getOutputStream();
out.println("<html><head><title>Too much data transformed!<title></head>");
out.println("<body><font color='red'>Error--Content leagth can not be bigger than 8K! </font></body>");
out.println("</html>");
}else{
doGet(req,res);
}
}
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException,IOException
{
res.setContentType("text/html");
ServletOutputStream out = res.getOutputStream();
out.println("<html>");
out.println("<head><title>Snoop Servlet</title></head>");
out.println("<body>");
out.println("<pre>");
out.println(HttpUtils.getRequestURL(req).toString());
out.println("</pre>");
//下面的程序显示初始化参数
Enumeration enum=(new ServletConfig()).getInitParameterNames()();
if (enum!=null)
{
boolean first = true;
//函数hasMoreElements判断组是否为空
while(enum.hasMoreElements())
{
if(first)
{
out.println("Init Parameters");
first=false;
}
String param=(String)enum.nextElement();
out.println(""+param+":"+getInitParameter(param));
}
}
//下面的程序显示对象HttpServletRequest中所包含的信息
out.println("<h2>Request Information:</h2>");
out.println("<pre>");
out.println("<h3>");
//方法getMethod返回服务器处理信息所用的方法
print(out,"Request method",req.getMethod());
//方法getRequestURI返回请求的URI
print(out,"Request URI",req.getRequestURI());
//方法getProtocol返回客户方与服务器方所用的协议
print(out,"Request protocol",req.getProtocol());
//方法getServletPath返回服务器处理请求的Servlet路径
print(out,"Servlet path",req.getServletPath());
//方法getPathInfo返回附加的路径信息,它时可选的
print(out,"Path Info",req.getPathInfo());
//方法getPathTranslated返回Servlet的决定路径
print(out,"Path translated",req.getPathTranslated());
//方法getQuerystring返回请求的查询字符串
print(out,"Query string",req.getQueryString());
//方法getContentLength返回请求的查询字符串的长度
print(out,"Content length",req.getContentLength());
//方法getContentType返回客户送到服务器的数据类型
print(out,"Content type",req.getContentType());
//方法getServerName返回服务器的名字
print(out,"Server name",req.getServerName());
//方法getServerPort返回服务器的端口
print(out,"Server port",req.getServerPort());
//方法getRemoteUser返回提出请求的客户方的名字
print(out,"Remote user",req.getRemoteUser());
//方法getRemoteAddress返回提出请求的客户的地址
print(out,"Remote address",req.getRemoteAddr());
//方法getAuthType返回鉴定类型
print(out,"Authorization scheme",req.getAuthType());
out.println("</pre>");
//下面的程序显示请求的头部信息
Enumeration e = req.getHeaderNames();
if(e.hasMoreElements())
{
out.println("<h1>Request headers:</h1>");
out.println("<pre>");
while(e.hasMoreElements())
{
String name = (String)e.nextElement();
out.println("" + name + ":" + req.getHeader(name));
}
out.println("</pre>");
out.println("<h3>");
}
//下面的程序显示Servlet的参数
e=req.getParameterNames();
if(e.hasMoreElements())
{
out.println("<h2>Servlet parameters:</h2>");
out.println("<h3>");
out.println("<pre>");
while(e.hasMoreElements())
{
String name = (String)e.nextElement();
out.println("" + name + " = " + req.getParameter(name));
}
out.println("</pre></h3>");
}
out.println("</body></html>");
}
/*向Servlet输入流输出两个字符串,若value值为null,则输出的第二个
字符串是none */
private void print(ServletOutputStream out, String name, String value)
throws IOException
{
out.println("" + name + ":");
out.println(value == null?"<none>":value);
}
/*输出一个字符串和一个整数,若整数的值为-1,则输出一个字符串和"none"
*/
private void print(ServletOutputStream out, String name, int value)
throws IOException
{
out.println("" + name + ":");
if( value == -1)
{
out.println("<none>");
}else{
out.println(value);
}
}
private static final String UNKNOWN = "<unknown>";
public String getServletInfo()
{
return "A servlet page that shows the request headers info!";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -