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

HTTPServletRequest介绍

34c3fb5ff46a41912cfcbb21041c28d8.png

----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 文件,打开进行如下配置:

9370472844d11efe182e4d0b9e157294.png

3. Post 方式请求

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

Servlet的使用流程

1.设置请求编码格式

2.设置响应编码格式

3.获取请求信息

4.处理请求信息

5.响应处理结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值