servlet中文乱码_10分钟快速掌握Servlet相关基础知识

Servlet的学习路线

1、 创建Servlet

2、 Servlet的相关配置

3、 Servlet的生命周期

4、 HttpServletRequest接口

5、 HttpServletResponse接口

6、 HttpSession接口

7、 Filter、Listener接口

Servlet的相关配置

1、 创建Servlet extends HttpServlet

2、 配置Serlvet

第1种配置方式: web.xml,web.xml不仅能配置Servlet信息,还可以配置欢迎页面,错误页面,其他的配置。

ca5a3d461ec15dbadb9cdc1e27601a42.png
d57c683a9644b4b870490bc69d81d6ac.png
f018c3ea649ca79e1c60f20bf458724f.png

第2种配置方式: 注解(Annotation)

@WebServlet( name = "", urlPatterns = {} )

urlPattern的配置规则:

1. 精确路径匹配

[例] /user/register.do

2. 模糊路径匹配

[例] /user/*

3. 扩展名匹配

[例] *.do

4. 默认匹配

[例] /

问: 如果一个Request URL能匹配多个urlPattern, 执行哪个对应的Servlet?

以优先级为依据: 精确路径 > 模糊路径 > 扩展名路径 > 默认路径

Servlet类型层次结构

3597466c95714d238e7cb4d44c0cf1df.png
2d7ad1c60a0a1222c680795319c80fc8.png

Servlet对象的常见方法剖析

String getServletName(); 获取Servlet对象的名称

ServletContext getServletContext(); //获取Servlet对象的容器(作用于整个项目)Servlet容器,它的生命周期最长,随着tomcat的启动而产生,关闭而销毁、更新销毁。

setAttribute(key,value); 向容器中存储数据

getAttribute(key); 从容器获取数据

String getInitParameter(String var1); //获取(ServletContenxt容器,全局参数也可以获取)的初始参数值

Enumeration getInitParameterNames(); //获取初始参数的名称

ServletConfig getServletConfig(); //获取配置文件的信息还可以调用父容器

使用HttpServletRequest获取请求信息

getParameter( String parameterName ) : String

getParameterValues( String parameterName ) : String[]

注意: 参数parameterName往往是表单元素的name属性.

中文乱码解决方案:

1. 通过QueryString传递中文数据时

修改tomcat/conf/server.xml ->

或在程序中直接对String进行转码操作

userName = new String(userName.getBytes("ISO-8859-1"), "UTF-8");

2. 通过请求体传递中文数据时

request.setCharacterEncoding("UTF-8");

Servlet生命周期:

自tomcat启动以来, 首次请求某Servlet时:

1. 容器调用构造器实例化该Servlet

2. 调用init()初始化该Servlet

3. 调用该Servlet的service()处理请求

3.1 如果该请求的Method是GET: 调用doGet()

3.2 如果该请求的Method是POST: 调用doPost()

第N(N>=2)次请求该Servlet时,执行上面的第3步

tomcat stop或update时:

4. 调用该Servlet的destroy()销毁实例

最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值