第七章:Servlet

7.1Servlet技术

7.1.1Servlet介绍

1、Servlet 是 JavaEE 规范之一。规范就是接口;
2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器;
3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。

7.1.2手动实现Servlet程序

1、编写一个Servlet程序(根据提交方式的不同,进行不同的处理);

1.	package com.atguigu.servlet;  
2.	  
3.	import javax.servlet.*;  
4.	import javax.servlet.http.HttpServletRequest;  
5.	import java.io.IOException;  
6.	  
7.	/** 
8.	 * @author peng 
9.	 * @date 2021/12/17 - 9:49 
10.	 */  
11.	public class HelloServlet implements Servlet {  
12.	  
13.	    @Override  
14.	    public void init(ServletConfig servletConfig) throws ServletException {  
15.	  
16.	    }  
17.	  
18.	    @Override  
19.	    public ServletConfig getServletConfig() {  
20.	        return null;  
21.	    }  
22.	  
23.	    /** 
24.	     * service是处理请求与响应的程序 
25.	     * 
26.	     * @param servletRequest 
27.	     * @param servletResponse 
28.	     * @throws ServletException 
29.	     * @throws IOException 
30.	     */  
31.	    @Override  
32.	    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {  
33.	        /** 
34.	         * 获取表单提交方式的方法 
35.	         * 1、在service方法中的servletRequest参数中有表单的提交方式,但是不能直接获取 
36.	         * 2、要使用ServletRequest的子类HttpServletRequest中的getMethod();方法才能获取 
37.	         */  
38.	        System.out.println("Servlet程序被访问了!");  
39.	        HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;  
40.	        String method = httpServletRequest.getMethod();  
41.	        System.out.println(method);  
42.	        if ("GET".equals(method)) {  
43.	            doGet();  
44.	        } else if ("POST".equals(method)) {  
45.	            doPost();  
46.	        }  
47.	    }  
48.	  
49.	    /** 
50.	     * 处理get请求的方法 
51.	     */  
52.	    public void doGet() {  
53.	        System.out.println("正在处理Get请求!");  
54.	    }  
55.	  
56.	    /** 
57.	     * 处理post请求的方法 
58.	     * 
59.	     * @return 
60.	     */  
61.	    public void doPost() {  
62.	        System.out.println("正在处理Post请求!");  
63.	    }  
64.	  
65.	    @Override  
66.	    public String getServletInfo() {  
67.	        return null;  
68.	    }  
69.	  
70.	    @Override  
71.	    public void destroy() {  
72.	  
73.	    }  74.	}  

2、 在web.xml中进行配置;

1.	<servlet>  
2.	      <!--    name是给Servlet程序起的一个别名,一般是Servlet的类名-->  
3.	      <servlet-name>HelloServlet</servlet-name>  
4.	      <!--    class是Servlet程序的全类名-->  
5.	      <servlet-class>com.atguigu.servlet.HelloServlet</servlet-class>  
6.	  </servlet>  
7.	  <servlet-mapping>  
8.	      <!--    name:表示告诉服务器,现在配置的地址给哪一个Servlet程序使用-->  
9.	      <servlet-name>HelloServlet</servlet-name>  
10.	      <!--    /hello表示程序开始的位置,通俗地说就是自定义给我所写的Servlet程序一个路径,告诉服务器Servlet路径被我定义成这个了-->  
11.	      <!--    还可以这样理解,/hello这个地址对应的是HelloServlet这个程序,以后还会有其他的Servlet程序,定义好路径之后就不会混乱了-->  
12.	      <!--    一个mapping对应的是一个Servlet-->  
13.	      <url-pattern>/hello</url-pattern>  
14.	  </servlet-mapping>  

7.1.3URL地址到Servlet程序的访问

第七章:Servlet

7.1.4Servlet的生命周期

1、执行Servlet构造器方法;
2、执行init初始化方法;
3、执行service方法;
4、执行destroy销毁方法。
注意:其中第一、第二步,在创建Servlet时会进行调用。第三步在每次访问Servlet程序时都会调用。第四步在web工程停止时会调用。

7.1.5通过继承 HttpServlet 实现 Servlet 程序

一般在实际项目开发中,都是使用继承 HttpServlet 类的方式去实现 Servlet 程序:
1、 编写一个类去继承 HttpServlet 类;
2、 根据业务需要重写 doGet 或 doPost 方法;
3、 到 web.xml 中的配置 Servlet 程序的访问地址。
(实现方式与上述创建Servlet程序差不多,在此就不进行代码的演示了)

7.1.6使用IDEA创建Servlet

1、通过右键new一个Servlet,有时候右键会new不出来,建议上网搜一下怎,因为我的就是右键new不出来;
第七章:Servlet

2、进行配置;
第七章:Servlet

7.1.7Servlet类的继承体系

第七章:Servlet

上一篇:一个轻量级、高可用性的 Android 版本更新框架,头条android面试题


下一篇:安卓开发-高级组件