1.废话不多说,直接上码做介绍
package com.wang.firstServlet;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class FirstServlet extends HttpServlet {
/**
* 以get方式访问页面时执行该函数
* 执行doGet前会先执行 getLastModified,如果浏览器发现getLastModified返回的数值
* 与上次访问时返回的数值相同,则认为该文档没有更新,浏览器采用缓存而不执行doGet
* 如果getLastModified返回-1,则认为时时刻更新的,总是执行该函数
*
*/
public void doGet(HttpServletRequest request,HttpServletResponse response){
this.log("执行 doGet方法......");
try {
this.execute(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 以post方式访问页面时执行该函数。执行前不会 执行getLastModified
*/
public void doPost(HttpServletRequest request,HttpServletResponse response){
this.log("执行doPost方法......");
try {
this.execute(request, response);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 返回该servlet生成的文档的更新时间。对GET方式访问有效
* 返回的时间为相对于1970.1.1 08:00:00的毫秒数
* 如果为-1则认为时实时更新。默认为-1
* @param request
* @param response
* @return
*/
public long getLastModified(HttpServletRequest request,HttpServletResponse response)throws Exception{
this.log("执行getLastModified方法......");
return -1;
}
private void execute(HttpServletRequest request,HttpServletResponse response) throws Exception{
request.setCharacterEncoding("utf-8"); //设置request编码
response.setCharacterEncoding("utf-8"); //设置response编码
String requestUrl = request.getRequestURI();
String method = request.getMethod();
String param = request.getParameter("param");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("<HEAD><TITLE>the first servlet</TITLE></HEAD>");
out.println("<BODY>");
out.println("以"+method+"方式访问该页面,取到的param值:"+param+"<br/>");
out.println("<form action='"+requestUrl+"' method='get'><input type='text' name='param' value='param string'><input type='submit' value='以get方式查询页面 "+requestUrl+"'></form>");
out.println("<form action='"+requestUrl+"' method='post'><input type='text' name='param' value='param string'><input type='submit' value='以post方式提交到页面"+requestUrl+"'></form>");
//客户端浏览器读取该文档的更新时间
out.println(" <script>document.write('本页最后的更新时间'+document.lastModified); </script>");
out.println(" </BODY>");
out.println(" </HTML>");
out.flush();
out.close();
}
}
2.web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>firstServlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<!--servlet-name必须保证名称唯一,该名称供其他标签如servlet-mapping,filter等使用 -->
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.wang.firstServlet.FirstServlet</servlet-class>
<!--servlet中可以使用 getServletContext.getInitParam(String paramName)来取得配置的初始化参数 值 -->
<init-param>
<param-name>message</param-name>
<param-value>welcome to myServlet</param-value>
</init-param>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
</web-app>