JavaWeb知识点总结(一)第一个servlet

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上,通过<servlet-mapping>设置


如图所示:

http://localhost:8080/xuebing/servlet/MyServlet

http://localhost:8080/xuebing/servlet/ServletDemo

都可以访问名叫ServletDemo的servlet

也可使用 * 作为 通配符,此时可以使用任意url访问这个servlet


配置servlet初始化参数

在web.xml文件中的<servlet>中使用<init-param>配置初始化参数

如下图:



当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("<hr>");

//通过枚举得到所有初始化参数和值
Enumeration<String> e =config.getInitParameterNames();
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
String value=config.getInitParameter(name);
response.getWriter().print(name + "=" + value + "<br/>");
}
 
}
   
public void init(ServletConfig config) throws ServletException {
this.config=config;
}
 

}


ServletContext对象

即servlet的上下文对象,表示当前web应用下的环境信息,一个web应用只会创建一个servletcontext对象,代表着这个web应用。

web应用里面的所有servlet共用一个servletcontext对象来实现数据共享,所以servletcontext也称域对象

(域对象指不同资源来共享数据,保存数据,获取数据。其他两个域对象为httpservletrequest,httpsession)。


1.创建两个servlet,分别写数据和读数据

写:   String data = "1071122914";

   this.getServletContext().setAttribute("data", data);

读:String data =(String) this.getServletContext().getAttribute("data");

2.读取配置文件

代码如下:

               
		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应用文件夹下。

如图:



3.读取xml全局参数。

String city = this.getInitParameter("city");


猜你喜欢

转载自blog.csdn.net/weixin_41818920/article/details/80830906
今日推荐