2-servlet一般使用场景.md

简要介绍

​ servlet 与其他函数相同,亦有自己的生命周期。

​ servlet 是 webapp 和 webserver 通讯的协议

遵循 servlet 规范的 webapp ,这个 webapp 就可以放在不同的 web 服务器中运行(因为这个 webapp 是遵循 servlet 规范的)

servlet规范包括什么?

  • 规范了哪些接口
  • 规范了哪些类
  • 规范了 webapp 应用应该有哪些配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.jhfuture.servlet;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;


/*
* 1.执行 servlet 构造方法
* 2.执行init 方法
* 第一、二步只有在servlet程序创建的时候调用
* 3.service方法
* 第三部,每次访问都会调用
* 4.destroy方法
*第四部,在web工程停止的时候调用
*
* service方法每次
* */
public class HelloServlet implements Servlet {
public HelloServlet() {
System.out.println("1.构造器方法");
}

@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2 int初始化");

}

@Override
public ServletConfig getServletConfig() {
return null;
}

@Override
/*
* service 方法是专门用来处理请求和响应
* */
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("3.service方法");
/*
* 区分 post 和 get
* */
// 类型转换(因为它有getmethod方法)
HttpServletRequest httpServletRequest=(HttpServletRequest) servletRequest;
//获取请求的方式
String method = httpServletRequest.getMethod();
System.out.println(method);
if (method.equals("POST")){
// System.out.println("post");
doPost();
}else if (method.equals("GET")){
// System.out.println("get");
doGet();
}

}

@Override
public String getServletInfo() {
return null;
}

@Override
public void destroy() {
System.out.println("4.destroy方法");
}
public void doGet(){
System.out.println("GET请求");
}
public void doPost(){
System.out.println("Post请求");
}
}


开发一个 带有 servlet(java 小程序) 的webapp

开发步骤

image-20221103210531231

image-20221103211314117

image-20221103212527364

image-20221103212909731

image-20221103213828275

image-20221103214137539

image-20221103214527196

image-20221103214550137

第六步:编写一个java程序,这个小程序必须实现 servlet 接口

  • 这个 servlet 解控不在 jdk 当中。
  • servlet 解控
  • servlet 接口是 javaee 的规范中的一员。

关于javaEE 的版本

image-20221103212032969

解决Tomcat服务器在DOS命令窗口中的乱码问题(控制台乱码)

image-20221103213739938

向浏览器响应一段html代码

二、servlet 中 web.xml文件的配置

1
2
public String getInitParameter(String name); // 通过初始化参数的name获取value
public Enumeration<String> getInitParameterNames(); // 获取所有的初始化参数的name
1
2
3
4
5
6
7
8
9
10
11
<!--以上两个方法是ServletContext对象的方法,这个方法获取的是什么信息?是以下的配置信息-->
<context-param>
<param-name>pageSize</param-name>
<param-value>10</param-value>
</context-param>
<context-param>
<param-name>startIndex</param-name>
<param-value>0</param-value>
</context-param>
<!--注意:以上的配置信息属于 应用级的配置信息,一般一个项目中共享的配置信息会放到以上的标签当中。-->
<!--如果你的配置信息只是想给某一个servlet作为参考,那么你配置到servlet标签当中即可,使用ServletConfig对象来获取。-->