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 的垃圾回收器进行垃圾回收。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/394386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python之collections之有序字典(OrderedDict)

一、定义OrderedDict是对字典的补充,它记住了字典元素的添加顺序。eg: 二、OrderedDict相关方法def clear(self): # real signature unknown; restored from __doc__ """     od.clear() -> None. Remove all items from od. …

进阶4:hive 安装

安装包: apache-hive-2.1.1-bin.tar.gz 安装步骤: 1.上传 apache-hive-2.1.1-bin.tar.gz 到linux; 2.解压文件: tar zxvf apache-hive-2.1.1-bin.tar.gz 3.安装mysql (仅支持mysql 5.7以下版本,不支持5.7或更高版本&#xff0c…

macbookpro接口叫什么_【科普】什么是雷电接口?苹果电脑MACBOOK PRO有吗?

刚接触笔记本的朋友不知道USB-C口是什么,也不知道雷电接口(Thunderbolt)是什么,只知道MACBOOK PRO有雷电3接口。简单来说 雷电接口是USB TYPE-C的替代模式,在此了解【什么是USB TYPE-C】 什么是雷电接口? 借用百度百科的表达 2011年2月24日,英特尔发布了长期以来广为宣传的…

usb serial port 驱动_tty初探 — uart驱动框架分析

写在前面:我们没有讲UART驱动,不过我们认为,只要系统学习了第2期,应该具备分析UART驱动的能力,小编做答疑几年以来,陆陆续续有不少人问到UART驱动怎么写,所以今天就分享一篇深度长文(17000字&am…

简述isodata算法的原理_算法常见面试题汇总(一):概率论与数理统计部分

初级或中级算法岗面试题主要有四类:数理统计基础、机器学习模型原理、编程能力、项目经验。项目经验因人而异,所以仅总结前三个方面的基础知识,分享给朋友。(高级或资深算法岗面试内容不在本文范围内)1.大数定律弱大数…

php开发支付宝支付密码忘记了怎么办_密码箱忘记密码怎么办?密码箱解锁方法大全...

密码箱忘记密码经常发生,有时候急着赶车赶飞机必须用的证件在密码行李箱,怎么办?破坏?当你忘记密码的时候千万不要着急,不要试着用暴力破坏密码锁。操作方法一此类型的密码箱的开锁方法。把箱子放在光线好的地方放平&a…

请写出至少5个html块元素标签_34道常见的HTML+CSS面试题(附答案)

公众号【传智播客博学谷】回复关键词:前端 PS Java(100G) Python(80G) 大数据 区块链 测试 PPT JS(40g300教程) HTML 简历 领取相关学习资料!一、HTML1、标签上title属性与alt属性的区别是什么?alt属性是为了给那些不能看到你文档中图像的浏览…

[阅读笔记]Zhang Y. 3D Information Extraction Based on GPU.2010.

1.立体视觉基础 深度定义为物体间的距离 视差定义为同一点在左图(reference image) 和右图( target image) 中的x坐标差。 根据左图中每个点的视差得到的灰度图称为视差图。 那么根据三角几何关系可以由视差(xR - xT ) 计算出深度.bcamera基线距离,f焦距。 离相机越…

r语言 小树转化百分数_“小树”机器人1.0新品发布会

产品初衷伴随着AI的落地,从最开始的刷脸支付,再到自动驾驶,还是现在互联网的5G时代,AI无疑都是产业变革的核心动力。那么作为一家科技创新的企业,小树机器人从建立之初就在不断的创新,我们致力于从智能出发…

javascript对象包含哪些要素_让人迷糊的JavaScript对象(Object一)

对于很多初学的小伙伴听到JavaScript内置对象、BOM、DOM、WEB API等关键词基本上都是迷糊,不是很明白他们之间的关系,以及他们是如果建立联系的。虽然我们现在小伙伴在学VUE,React等框架能简化我们的操作,但是遇到一些基础的问题还…

被吐嘈的NodeJS的异常处理

被吐嘈的NodeJS的异常处理 许多人都有这样一种映像,NodeJS比较快; 但是因为其是单线程,所以它不稳定,有点不安全,不适合处理复杂业务; 它比较适合对并发要求比较高,而且简单的业务场景。 在Expr…

查看 rabbitmq 启动websocket 提示404_RabbitMQ在windows下安装(笔记)

先保证Java开发环境一切正常,【jdk,maven】,然后下载两个文件,1,下载OTPhttps://www.rabbitmq.com/download.html 下载地址下载RabbitMQ Downloading and Installing RabbitMQ:地址安装没有别的操作,一直下一步就好;2&…

[Leetcode] Longest Valid Parentheses

找出字串裡最長的合法括號組 簡單說&#xff0c;一樣stack搜尋合法parenth&#xff0c;把不合法的 ( & ) index 紀錄下來&#xff0c;最後算index間的差值取最大就是最長的 public class Solution{/// <summary>/// 把不合法的( )的index記下來&#xff0c;取最長的差…

[deviceone开发]-do_Album的简单示例

一、简介do_Album用来打开手机系统提供的相册&#xff0c;能选择一张或多张图片返回给开发者&#xff0c;通常相册的图片比较大&#xff0c;要经过缩放。有的时候用户也需要把别的地方获取到到图片收藏到系统相册。这个示例简单展示这个组件的2个基本功能。二、效果图三、相关下…

公办低分二本_这六所公办二本高校的计算机类相关专业值得低分段考生选择

邯郸学院——计算机科学与技术近年来&#xff0c;邯郸学院着力强化“以本为本”理念,坚持“学生中心”“产出导向”原则&#xff0c;加强学科专业建设&#xff0c;获批国家级特色专业1个&#xff0c;省级重点发展学科3个&#xff0c;省级一流专业7个&#xff0c;英语等3个专业入…

Ubuntu 14.04 FTP服务器--vsftpd的安装和配置

更新源列表 打开"终端窗口"&#xff0c;输入"sudo apt-get update"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。如果不运行该命令&#xff0c;直接安装vsftpd,会出现"有 几个软件包无法下载&#xff0c;您可以运…

校验电话号码 手机号码正则表达式

2019独角兽企业重金招聘Python工程师标准>>> 电话号码 手机号码 等准确详细 正则表达式电话号码正则表达式 &#xff08;支持手机号码&#xff0c;3-4位区号&#xff0c;7-8位直播号码&#xff0c;1&#xff0d;4位分机号&#xff09; ((\d{11})|^((\d{7,8})|(\d{4}…

期刊投稿状态_SCI投稿全过程解析及拒稿后处理对策

之前给大家介绍了如果使用人工智能来提高SCI写作效率的神器&#xff0c;相信大家对SCI写作已经很有信心了。但有些小伙伴后台说对投稿过程很没有概念&#xff0c;不同期刊不同状态。那么今天我们就对SCI投稿过程、投稿状态做一个总结和解析以及拒稿后处理对策及接受后期相关问答…

运用Appium 实现添加微信好友自动化

本文为原创文章&#xff0c;如需转载请注明出处. 任务&#xff1a;实现批量添加微信好友自动化。 任务分析&#xff1a;1.首先要实现添加单个好友步骤自动化。 2.实现脚本读取Excel里的值。 3.参数化好友电话号码或者昵称。 PS:代码采用POM(Page Object Model)便于后续维护 数…

pdf.js浏览中文pdf乱码的问题解决

由于项目中需要支持移动设备在线浏览pdf&#xff0c;苹果还好&#xff0c;天生支持&#xff0c;但是安卓中就不行了&#xff0c;需要第三方组件的支持。 这里就找到了pdf.js&#xff0c;由于pdf数据太多&#xff0c;开始的时候没法一一测试&#xff0c;所以随便测试打开了几篇没…