init() 初始化方法只会调用一次,它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是一次性方法。
service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。
每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST等),并在适当的时候调用 doGet、doPost 等方法。
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。
同一个Servlet可以被映射到多个URL上,通过
如图所示:
http://localhost:8080/xuebing/servlet/MyServlet
http://localhost:8080/xuebing/servlet/ServletDemo
都可以访问名叫ServletDemo的servlet
也可使用 * 作为 通配符,此时可以使用任意url访问这个servlet
在web.xml文件中的
如下图:
当servlet配置参数后,web容器在创建servlet实例对象时,会将这些参数封装到servletconfig对象中
所以,可以通过servletconfig 对象得到初始函数并输出。
代码如下:
package MyFirstServlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ConfigDemo extends HttpServlet {
//定义ServletConfig来接收初始化参数
ServletConfig config;
public void destroy() {
super.destroy();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
//获取参数name的值
String n = config.getInitParameter("name");
response.getWriter().print(n);
response.getWriter().print("
}
即servlet的上下文对象,表示当前web应用下的环境信息,一个web应用只会创建一个servletcontext对象,代表着这个web应用。
web应用里面的所有servlet共用一个servletcontext对象来实现数据共享,所以servletcontext也称域对象。
(域对象指不同资源来共享数据,保存数据,获取数据。其他两个域对象为httpservletrequest,httpsession)。
写: String data = "1071122914";
this.getServletContext().setAttribute("data", data);
读:String data =(String) this.getServletContext().getAttribute("data");
代码如下:
InputStream in=
this.getServletContext().getResourceAsStream
("/WEB-INF/classes/data.properties");
Properties p=new Properties();
p.load(in);
String name = p.getProperty("name");
String age = p.getProperty("age");
out.print("数据:"+name+age);
先用输出流读取配置文件,再用properties类加载配置文件,最后获取数据并输出。
配置文件保存在web应用文件夹下。
如图:
String city = this.getInitParameter("city");