servlet 接收request发送过来的多维数组_049 JAVA-Servlet
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对象销毁。
乱码问题解决方式
- 使用 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相关推荐
- java二维数组初始化(java二维数组初始化的三种方式)
用java求二维数组(3*3)的所有元素之和 设你的数组是data[][]double sum=0;for(int i=0;i java一维数组/二维数组运用的例子有什么? util.*; publi ...
- java servlet 接收post_java 代码post表单数据到服务器,servlet接收处理
前言: 一般来说表单数据是在网页前端上面实现,在对应框内填入数据,点击提交按钮即将数据传递给后台(action的值指定负责处理表单数据的具体哪个servlet).但是其实java代码也是可以远程pos ...
- js二维数组传递java,ActiveX获取JavaScript传递的二维数组
此文参考了http://blog.csdn.net/playstudy/article/details/8259737,在此基础上做了改进 // WebDlg.idl : WebDlg 的 IDL 源 ...
- 如何使用 Java Servlet 处理 HTML 表单数据
在本 Java Servlet 教程中,我将指导您如何使用Java Servlet从服务器端的 HTML 表单中读取常用输入字段的值. 您知道,处理以 HTML 页面表示的表单数据是 Web 开发中非 ...
- 1.3 Java二维数组详解
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...
- java二维数组高纬低纬_2018-05-17 第十一天
一.数组 (一)数组的优缺点: 优点:1:数组通过下标访问元素的效率很高.指定下标n的元素的地址:首地址+n*元素类型字节数. 2:数组可以保存若干个元素的值. 缺点:1:数组的长度是不能更改的. 2 ...
- JavaSE03、数组,引用,数组拷贝,二维数组
1.定义数组的三种方式 2.数组长度.访问元素 3.打印数组的三种形式 ① 遍历数组: ② 增强for循环/for each循环: ③ 借助Java的操作数组的工具类 Arrays: 4.空指针异常 ...
- Java二维数组详解:二维数组的声明和初始化,以及获取二维数组的值
为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的形式呈现出来.二维数组的结构决定了其能非常方便地表示计算机中的表,以第一个下标表示元素所在的行,第二个下标表示元素所在的列.下面 ...
- java servlet面试题_Java面试题总结系列 Servlet
Servlet技术主要是为了使用Web上的HTTP协议而设计的.servlet是在WEB服务器上运行的程序.Java Servlet可以用于处理客户请求或生成动态Web网页.先一个实例.然后解释. 先 ...
最新文章
- libcareplus一个Qemu-6.1.0热补丁示例
- |NOIOJ|动态规划|8462:大盗阿福
- adb shell 运行时报错“adb server version (26) doesn‘t match this client (39); killing...“的解决方案
- 别把量化交易变成拼人力、拼硬件、拼资源的烧钱游戏
- SSH三大框架的整合(实例)
- 手电筒安卓_王思聪吃热狗数字时钟安卓apk下载安装ios现在
- Android 手机的高级终端 Termux 安装、使用
- 《连线》评出2008年十大最值得关注创业公司
- KGB知识图谱帮助金融机构进行风险预判
- warmup与余弦退火学习率
- C. Two Shuffled Sequences
- [Unity][blender]在blender中新建标准两足人形骨骼模型动作导入到Unity中
- C# 鼠标悬浮mouseHover事件的添加 实现鼠标悬浮在按钮或者控件 显示相关的帮助信息
- 【Flutter】mounted
- CAPA换届大会召开,发布信息无障碍最新报告及“可及APP”
- UITableviewCell 使用Masonry撑开cell高度 遇见[LayoutConstraints] Unable to simultaneously satisfy constraints
- 如何用SPSS进行数据分析?
- day04 【Map】
- 欢迎光临Simon个人空间
- android,js,各种软件列表