HTTPServletRequest介绍

----Request对象:

服务器在接收到请求后,会给此次请求创建一个request对象,此对象中封存了此次请求相关的数据

服务器在调用 Servlet 时会将创建的 Request 对象作为实参传递给 Servlet 的方法,比如:service 方法

特点:

request对此昂you服务器创建

一次请求值创建一个request对象

生命周期为一次请求内,请求结束销毁此次请求的request对象

注意:Request对象的作用是存储请求数据,并且每次请求都会向黄建新的request对此昂进行存储请求数据

--request获取请求数据

请求行:请求方式 请求URL 协议

getMethod(); 返回请求方式

getRequestUrl(); 返回请求url

getRequestUri(); 返回请求uri

getQueryString(); 返回get请求中的URL中的用户数据 注意:post请求没有此方法。

getSchema(); 返回协议

请求头

getHeader(String name) 根据键名获取请求头信息

注意:如果获取的请求头信息不存在返回null。

getHeaderNames() 返回存储了请求头键名的枚举集合。

请求实体

getParameter(String name) 根据键名获取数据

注意:键名其实就是前端页面中的表单标签的name属性的值或者前端页面其他方式提交数据的键的名字

如果请求中没有对应的请求数据,则返回null.

getParameterValues(String name) 根据键名获取同名不同的值,返回数组

注意:如果没有对应的键名,则返回null

getParameterNames() 返回实体数据中键名的枚举

请求网络相关数据

getRemoteAddr() 获取客户端的IP地址

getRemotePort() 获取客户端端口号

getLocalAddr() 获取服务器端的ip

getLocalPort() 获取服务器端的端口号

----------------------------------------------------------------------------------------------

doGet()、doPost()、service方法的特性与区别:

doGet(HttpServletRequest req, HttpServletResponse resp)

特点:

处理get方式的请求。

doPost(HttpServletRequest req, HttpServletResponse resp)

特点:

处理post方式的请求

service(HttpServletRequest req, HttpServletResponse resp)

特点:

无论是什么类型的请求方式,服务器都会优先执行service方法。

注意:

servlet中没有声明service方法,会根据请求方式调用对应的方法进行请求处理, 如果在servlet中没有声明对应的请求处理方法,则会报405错误。

* 注意(非常重要)

tomcat服务器其实只认识service方法,如果我们自己声明的servlet中没有覆写service方法,则会执行HttpServlet中的

service方法,而HttpServlet中的service方法会根据请求方法调用对应的doXX()方法执行请求处理。

----------------------------------------------------------------------------------------------

Servlet的生命周期

结论:

从第一次被调用到服务器关闭

验证:

init方法 :servlet被初始化创建的时候调用

service方法:处理请求的时候

destory方法 :servlet被销毁的时候。

当服务器关闭的时候销毁servlet,触发destroy方法的执行

注意:

我们可以在web.xml中配置load-on-startup来设置Servlet的加载时机为服务器启动。

生命周期就变为从服务器开启到服务器关闭

----------------------------------------------------------------------------------------------

HTTPServletResponse介绍

----Response 对象

服务器在调用指定的 Servlet 进行请求处理的时候,会给 Servlet 的方法 传递两个实参 request 和 response。其中 request 中封存了请求相关的请求 数据,而 response 则是用来进行响应的一个对象

*response对象设置信息:

设置响应行: 协议 状态码 状态消息:

resp.sendError(int status)

作用:可以自主的响应状态给浏览器

设置响应头:

addHeader(String name,String value) 添加响应头信息,同名数据不会覆盖

setHeader(String nanme,String value) 设置响应头信息,会覆盖原有信息。如果没有此响应头则添加该信息。

设置响应实体(处理结果):

resp.getWriter().write("实体内容");

注意:实体内容可以分开进行响应(多条并列)。

注意:一旦使用resp对象作出了请求响应,则意味着此次请求处理完毕。服务器在响应后会将此次请求相关的req对象和resp对象销毁。

乱码问题解决方式

  1. 使用 String 进行重新编码:
uname

2. Get 方式请求:

在 service 方法中使用: req.setCharacterEncoding(“utf-8”);

在 tomcat 服务器目录下的 conf 文件下找到 server.xml 文件,打开进行如下配置:

3. Post 方式请求

在 service 方法中使用: req.setCharacterEncoding(“utf-8”);

Servlet的使用流程

1.设置请求编码格式

2.设置响应编码格式

3.获取请求信息

4.处理请求信息

5.响应处理结果

servlet 接收request发送过来的多维数组_049 JAVA-Servlet相关推荐

  1. java二维数组初始化(java二维数组初始化的三种方式)

    用java求二维数组(3*3)的所有元素之和 设你的数组是data[][]double sum=0;for(int i=0;i java一维数组/二维数组运用的例子有什么? util.*; publi ...

  2. java servlet 接收post_java 代码post表单数据到服务器,servlet接收处理

    前言: 一般来说表单数据是在网页前端上面实现,在对应框内填入数据,点击提交按钮即将数据传递给后台(action的值指定负责处理表单数据的具体哪个servlet).但是其实java代码也是可以远程pos ...

  3. js二维数组传递java,ActiveX获取JavaScript传递的二维数组

    此文参考了http://blog.csdn.net/playstudy/article/details/8259737,在此基础上做了改进 // WebDlg.idl : WebDlg 的 IDL 源 ...

  4. 如何使用 Java Servlet 处理 HTML 表单数据

    在本 Java Servlet 教程中,我将指导您如何使用Java Servlet从服务器端的 HTML 表单中读取常用输入字段的值. 您知道,处理以 HTML 页面表示的表单数据是 Web 开发中非 ...

  5. 1.3 Java二维数组详解

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...

  6. java二维数组高纬低纬_2018-05-17 第十一天

    一.数组 (一)数组的优缺点: 优点:1:数组通过下标访问元素的效率很高.指定下标n的元素的地址:首地址+n*元素类型字节数. 2:数组可以保存若干个元素的值. 缺点:1:数组的长度是不能更改的. 2 ...

  7. JavaSE03、数组,引用,数组拷贝,二维数组

    1.定义数组的三种方式 2.数组长度.访问元素 3.打印数组的三种形式 ① 遍历数组: ② 增强for循环/for each循环: ③ 借助Java的操作数组的工具类 Arrays: 4.空指针异常 ...

  8. Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值

    为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...

  9. java servlet面试题_Java面试题总结系列 Servlet

    Servlet技术主要是为了使用Web上的HTTP协议而设计的.servlet是在WEB服务器上运行的程序.Java Servlet可以用于处理客户请求或生成动态Web网页.先一个实例.然后解释. 先 ...

最新文章

  1. libcareplus一个Qemu-6.1.0热补丁示例
  2. |NOIOJ|动态规划|8462:大盗阿福
  3. adb shell 运行时报错“adb server version (26) doesn‘t match this client (39); killing...“的解决方案
  4. 别把量化交易变成拼人力、拼硬件、拼资源的烧钱游戏
  5. SSH三大框架的整合(实例)
  6. 手电筒安卓_王思聪吃热狗数字时钟安卓apk下载安装ios现在
  7. Android 手机的高级终端 Termux 安装、使用
  8. 《连线》评出2008年十大最值得关注创业公司
  9. KGB知识图谱帮助金融机构进行风险预判
  10. warmup与余弦退火学习率
  11. C. Two Shuffled Sequences
  12. [Unity][blender]在blender中新建标准两足人形骨骼模型动作导入到Unity中
  13. C# 鼠标悬浮mouseHover事件的添加 实现鼠标悬浮在按钮或者控件 显示相关的帮助信息
  14. 【Flutter】mounted
  15. CAPA换届大会召开,发布信息无障碍最新报告及“可及APP”
  16. UITableviewCell 使用Masonry撑开cell高度 遇见[LayoutConstraints] Unable to simultaneously satisfy constraints
  17. 如何用SPSS进行数据分析?
  18. day04 【Map】
  19. 欢迎光临Simon个人空间
  20. android,js,各种软件列表

热门文章

  1. delphi 汉字的编码 转换
  2. 基本BASH SHELL脚本命令——Linux系统管理命令-检测程序、检测磁盘空间
  3. Linux基础——操作系统框架
  4. 视频PPT互动问答丨Oracle Groundbreak亚太巡演2021(中国区)
  5. Oracle RAC环境下如何定位并杀掉最终阻塞的会话
  6. 当时间管理碰上大数据,从此,悠悠时光也终不再那么漫长
  7. 掌握渗透测试,从Web漏洞靶场搭建开始
  8. 618物流压力怎么扛?
  9. 【华为云技术分享】漫谈LiteOS-端云互通组件-MQTT开发指南(上)
  10. 程序员一定要知道的11个实用工具网站