一.Servlet
1. servlet生命周期
-
加载和实例化:默认情况下,当Servlet第一次被访问时,由Tomcat容器创建对象。
-
初始化:在Servlet实例化之后,容器将会调用Servlet的init()方法来初始化对象,完成一些加载配置文件等初始化工作,只会被调用一次。
可以通过loadOnStartup来修改Servlet的创建时机
@WebServlet(urlPatterns=“/demo” , loadOnStartup= -1)
- 负整数:在第一次被访问时创建servlet对象
- 0或正整数:在服务器启动时创建servlet对象,数字越小优先级越高
-
请求处理:每次请求Servlet时,容器都会调用Servlet的service()方法来处理请求,会执行多次。
-
服务终止:当需要内存释放或服务器关闭时,容器会调用Servlet的destroy()方法完成资源的释放。
2. Servlet urlPattern 配置
2.1 一个Servlet可以配置多个urlPattern
@WebServlet(urlPatterns = {
"/demo1","/demo2"})
2.2 urlPattern 配置规则
二. Request & Response
1. Request
1.1 request 获取请求数据
1.2 request 通用方式获取请求参数
Map<String, String[]> getParameterMap():获取所有参数map集合
String[] getParameterValues(String name):根据名称获取参数值(数组)
String getParameter(String name):根据名称获取参数值(单个值)
1.3 解决Post请求参数中文乱码
因为post请求方式底层获取参数是通过获取字符输入流来获取信息的,所以只要设置字符输入流的编码就可以
request.setCharacterEncoding("UTF-8");
1.4 解决Get请求参数中文乱码
String username = "张三";
//URL编码
String encode = URLEncoder.encode(username, "UTF-8");
System.out.println(encode); //%E5%BC%A0%E4%B8%89
//URL解码
String decode = URLDecoder.decode(encode, "UTF-8"