📄 ch16.txt
字号:
/* 代码16-1
* Created on 2005-5-22
*/
import java.io.*;
import java.servlet.*;
import javax.servlet.*;
public class RequestInfoExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");//设置当前的类型
PrintWriter out = response.getWriter();//获得输出流
out.println("<html>"=;//输出html标记
out.println("<body>"=;//输出主体标记
out.println("<head>"=;//输出头命令标记
out.println("<title>Request Information Example</title>");
out.println("</head>");
out.println("<body>"=;
out.println("<h3>Request Information Example</h3>"=;//设置文本大小类型
out.println("Method: " + request.getMethod());
out.println("Request URI: " + request.getRequestURI());//获得URL地址
out.println("Protocol: " + request.getProtocol());//获得协议类型
out.println("PathInfo: " + request.getPathInfo());//获得路径信息
out.println("Remote Address: " + request.getRemoteAddr());
out.println("</body>");
out.println("</html>");
}
public void doPost(HttpServletRequest request, HttpServletResponse res)
throws IOException, ServletException
{
doGet(request, response);
}
}
/* 代码16-2
* Created on 2005-5-22
*/
public interface Servlet {
public void init(ServletConfig config)//初始化接口
throws ServletException;
public ServletConfig getServletConfig();//配置Servlet接口
public void service(ServletRequest req,
ServletResponse res)
throws ServletException, IOException;
public String getServletInfo();获取Servlet信息
public void destroy();
}
/* 代码16-3
* Created on 2005-5-22
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ServletsRule extends HttpServlet {
int i = 0;
public void service(HttpServletRequest req,
HttpServletResponse res) throws IOException {
res.setContentType("text/html");//设置类型信息
PrintWriter out = res.getWriter();//获得输出流
out.print("<HEAD><TITLE>");//设置头信息
out.print("A server-side strategy");
out.print("</TITLE></HEAD><BODY>");//设置文本大小
out.print("<h1>Servlets Rule! " + i++);
out.print("</h1></BODY>");
out.close();
}
}
/* 代码16-4
* Created on 2005-5-22
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class EchoForm extends HttpServlet {
public void service(HttpServletRequest req,
HttpServletResponse res) throws IOException {
res.setContentType("text/html");//设置HTML类型
PrintWriter out = res.getWriter();//获得输出流
Enumeration flds = req.getParameterNames();//设置排列信息
if(!flds.hasMoreElements()) {
// No form submitted -- create one:
out.print("<html>");//html头标记
out.print("<form method=\"POST\"" +
" action=\"EchoForm\">");
for(int i = 0; i < 10; i++)
out.print("<b>Field" + i + "</b> " +
"<input type=\"text\""+
" size=\"20\" name=\"Field" + i +
"\" value=\"Value" + i + "\"><br>");//文本大小类型,字体类型
out.print("<INPUT TYPE=submit name=submit"+
" Value=\"Submit\"></form></html>");
} else {
out.print("<h1>Your form contained:</h1>");
while(flds.hasMoreElements()) {
String field= (String)flds.nextElement();//给出下一个字段
String value= req.getParameter(field);//设置参数
out.print(field + " = " + value+ "<br>");
}
}
out.close();//关闭输出流
}
}
/* 代码16-5
* Created on 2005-5-22
*/
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class ThreadServlet extends HttpServlet {
int i;
public void service(HttpServletRequest req,
HttpServletResponse res) throws IOException {
res.setContentType("text/html");//设置类型信息
PrintWriter out = res.getWriter();//设置输出流
synchronized(this) {
try {
Thread.currentThread().sleep(5000);//线程终止5秒
} catch(InterruptedException e) {
System.err.println("Interrupted");
}
}
out.print("<h1>Finished " + i++ + "</h1>");
out.close();//关闭输出流
}
}
/* 代码16-6
* Created on 2005-5-22
*/
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SessionPeek extends HttpServlet {
public void service(HttpServletRequest req,
HttpServletResponse res)
throws ServletException, IOException {
// Retrieve Session Object before any
// output is sent to the client.
HttpSession session = req.getSession();//获取session信息
res.setContentType("text/html");//设置类型
PrintWriter out = res.getWriter();//得到输出流
out.println("<HEAD><TITLE> SessionPeek ");
out.println(" </TITLE></HEAD><BODY>");
out.println("<h1> SessionPeek </h1>");//设置文本
// A simple hit counter for this session.
Integer ival = (Integer)
session.getAttribute("sesspeek.cntr");//从session得到属性
if(ival==null)
ival = new Integer(1);
else
ival = new Integer(ival.intValue() + 1);
session.setAttribute("sesspeek.cntr", ival)//重新设置属性;
out.println("You have hit this page <b>"
+ ival + "</b> times.<p>");
out.println("<h2>");//文本标记
out.println("Saved Session Data </h2>");//存储信息
// Loop through all data in the session:
Enumeration sesNames =
session.getAttributeNames();//获取排列信息
while(sesNames.hasMoreElements()) {
String name =
sesNames.nextElement().toString();
Object value = session.getAttribute(name);
out.println(name + " = " + value + "<br>");
}
out.println("<h3> Session Statistics </h3>");//获取session统计信息
out.println("Session ID: "
+ session.getId() + "<br>");//打印ID信息
out.println("New Session: " + session.isNew()
+ "<br>");//创建新session
out.println("Creation Time: "
+ session.getCreationTime());//创建时间信息
out.println("<I>(" +
new Date(session.getCreationTime())
+ ")</I><br>");
out.println("Last Accessed Time: " +
session.getLastAccessedTime());
out.println("<I>(" +
new Date(session.getLastAccessedTime())
+ ")</I><br>");
out.println("Session Inactive Interval: "
+ session.getMaxInactiveInterval());
out.println("Session ID in Request: "
+ req.getRequestedSessionId() + "<br>");
out.println("Is session id from Cookie: "
+ req.isRequestedSessionIdFromCookie()
+ "<br>");
out.println("Is session id from URL: "
+ req.isRequestedSessionIdFromURL()//得到URL地址
+ "<br>");
out.println("Is session id valid: "
+ req.isRequestedSessionIdValid()
+ "<br>");
out.println("</BODY>");
out.close();
}
public String getServletInfo() {
return "A session tracking servlet";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -