http协议/获得请求/中文参数处理/访问数据库
# 1. http协议(了解)
## (1)什么是http协议?
一种网络应用层协议,规定了浏览器与web服务器之间如何通信以及相应的的数据包的结构。
注:
tcp/ip协议:保证数据可靠的传递。(UDP不可靠)
http协议需要利用tcp/ip协议来传递数据包。
1)如何通信?
step1.建立连接
step2.发送请求
step3.发送响应
step4.关闭连接
2)优点
服务器可以利用有限的连接为尽可能多的请求服务。
## (2)数据包的结构
1)请求数据包
a.请求行 (请求类型 请求资源路径 协议和版本)
b.若干消息头
注:
消息头是一些键值对,用": "隔开,浏览器与web服务器之间,可以利用消息头来传递一些特定的信息。比如浏览器可以通过发送user-agent消息头来告诉服务器,浏览器的类型和版本。
c.实体内容
只有当请求类型为post时,实体内容才会有数据。
2)响应数据包
a.状态行 (协议类型和版本 状态码 状态描述)
注:
状态码是一个三位数字,表示服务器处理请求的一种状态。
200 正常
500 系统出错
404 依据请求路径找不到对应的资源
b.若干消息头
服务器也可以发送一些消息头给浏览器,比如,通过发送content-type消息头,告诉浏览器,服务器返回的数据类型。
c.实体内容
程序的处理结果,浏览器解析出来然后生成相应的的页面。
## (3)两种请求方式
### 1)get请求
a.哪一些情况下,浏览器会发送get请求?
情形1: 表单默认的提交方式。
情形2: 直接在浏览器地址栏输入某个地址。
情形3: 点击链接。
b.特点
特点1: 会将请求参数添加到请求资源路径的后面,所以,只能提交少量的数据。
注:因为请求行大约只能存放2K左右的数据。
特点2: 会将请求参数显示在浏览器地址栏,不安全(因为有一些网络设备,比如路由器会记录请求地址)。
## 2)post请求
a.哪一些情况下,浏览器会发送post请求
将表单的method="post"。
b.特点
特点1:会将求参数添加到实体内容里面,所以可以提交大量的数据。
特点2:不会将请求参数显示在浏览器地址栏,相对安全一些。
注:
不管什么请求,都不会对数据进行加密。
所以,对于敏感数据,一定要加密。
# 2. 如何获得请求参数值
## (1)方式一
String request.getParameter(String paramName);
注:
如果请求参数名写错,会获得null值。
文本输出框、密码输入框,如果不填写任何数据,会获得""。
## (2)方式二
String[] request.getParameterValues(String paramName);
注:
当有多个请求参数名相同时,使用此方法。
多选框,如果一个选项都不选择的话,会获得null值。
# 3.表单包含有中文参数值,如何处理?
## (1)为什么会有乱码?
表单提交时,浏览器会对表单中的中文参数值进行编码(会使用打开该表单所在页面时的字符集来编码),服务器端默认会使用iso-8859-1来解码,所以会产生乱码。
## (2)如何处理?
response.setContentType("text/html;charset=utf-8");//处理方法
### 1)post请求
### 2)get请求
# 4.访问数据库
## (1)准备工作
step1. 导包 (jdbc驱动,连接池)
将jdbc02工程中的pom.xml文件里面的
dependencies复制到新工程中的pom.xml文件中。
step2. 添加jdbc.properties文件(使用jdbc02
工程中的即可)。
step3. 添加DBUtils类。(使用jdbc02工程中的即可)。
step4. 测试DBUtils类。(保证可以正常获得连接)
step5. 建表
create table t_user(
id int primary key auto_increment,
username varchar(50) unique,
password varchar(20),
email varchar(30)
);
## (2)修改AddUserServlet,使用jdbc访问数据库
http协议/获得请求/中文参数处理/访问数据库的更多相关文章
- tomcat解决GET请求中文参数乱码
通常,在使用Spring MVC框架的应用程序中,为了解决中文参数乱码的问题,都会添加如下过滤器配置: <filter> <filter-name>encodingFilter ...
- POST、GET请求中文参数乱码问题
POST请求中文乱码问题解决方法: 在web.xml文件中添加编码过滤器,如下: <!-- 解决post乱码 --> <filter> <filter-name>C ...
- springmvc将处理后的数据通过get方法传给页面时,可能会出现乱码。下面对于get请求中文参数出现乱码提出解决办法。
对于get请求中文参数出现乱码解决办法有两个: 1.修改tomcat配置文件(tomcat--->conf--->server.xml)添加编码与工程编码一致,如下: <Connec ...
- Tomcat get请求中文参数乱码
场景:使用Tomcat容器进行get方式传递中文参数到后台乱码. 原因:Tomcat默认的编码方式是ISO--. 解决方案: . 设置cofg-server.xml中的<Connector> ...
- 页面get请求 中文参数方法乱码问题
对于get方式,请求参数中存在中文,可以使用下面的方法进行处理: 两次使用encodeURI()方法:例如:encodeURI(encodeURI(“中文”)),然后再服务器中使用URLDecoder ...
- 「post中文参数问题」以及「验证码自动识别备忘」
前言 之前搞过几次模拟登录,都是模拟 post 后取到 cookie,之后便能用这个 cookie 愉快玩耍.这次碰到了验证码,其实只需手动登录一次,手动取到 cookie 后也能玩耍,不过 cook ...
- SpringMVC如何解决POST请求中文乱码问题,GET的又如何处理呢?
在web.xml中 <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-c ...
- Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 httplib模块 django和web服务器整合 wsgi模块 gunicorn模块
Python第十三天 django 1.6 导入模板 定义数据模型 访问数据库 GET和POST方法 SimpleCMDB项目 urllib模块 urllib2模块 ...
- [JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法
在Get请求中,如果请求参数中带有中文,如 http://localhost:8080/DinnerParty/shop/search?query=多伦多, 在服务端拿到的是乱码. 这是因为客户端提交 ...
随机推荐
- @staticmethod和@classmethod的作用与区别
一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某些应 ...
- FastJson 对enum的 序列化(ordinal)和反序列化
目前版本的fastjon默认对enum对象使用WriteEnumUsingName属性,因此会将enum值序列化为其Name. 使用WriteEnumUsingToString方法可以序列化时将Enu ...
- TOP100summit:【分享实录】链家网大数据平台体系构建历程
本篇文章内容来自2016年TOP100summit 链家网大数据部资深研发架构师李小龙的案例分享. 编辑:Cynthia 李小龙:链家网大数据部资深研发架构师,负责大数据工具平台化相关的工作.专注于数 ...
- PAT-GPLT L1-035 - 情人节 - [大水题]
题目链接:https://www.patest.cn/contests/gplt/L1-035 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standar ...
- Unity事件处理机制与NGUI事件机制
1 Unity原生 1.1 GUI void OnGUI(){ if(GUI.Button(Rect position, string text)){ //点击后立即执行 } 1.1 Input 每个 ...
- gis 相关资料
--gis原理学习 http://group.cnblogs.com/GIS/best-1.html http://www.cnblogs.com/SuperXJ/tag/移动GIS/ --gis坐标 ...
- Oracle安全之Oracle日志挖掘
logminer基于包: [oracle@localhost ~]$ ls /u01/oracle/10g/rdbms/admin/dbmslm.sql -->dbms_logmnr工具 /u0 ...
- intel笔记本cpu型号后缀详解(M,U,QM,MQ,HQ,XM)
M:笔记本专用CPU,一般为双核,M前面一位数字是0,意味着是标准电压处理器,如果是7,则是低电压处理器. U:笔记本专用低电压CPU,一般为双核,U前面一位数字为8,则是28W功耗的低压处理器(标准 ...
- android侧滑删除,模仿qq跟进item显示删除按钮
今天所写的代码只是为了个人以后查询方便,如果你参考了并且在使用中遇到问题也可以在这里直接回复我 SwipeDelMenuLayout: 效果图: item布局: <?xml version=&q ...
- 【剑指offer】 二叉树中和为某一值的路径
一.题目: 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径.(注意: 在返回值的list中,数组长度 ...