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程序的访问
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不出来;
2、进行配置;