表单的请求传输

服务器设置编码方案

1.可以通过response.setCharactorEncoding("utf-8")来设置服务器端的编码方式
2.也可以通过response.setContentType("textml;charset=utf-8")方法,以消息头的方式告诉浏览器以什么编码格式解码 ,若使用第二种,则第一种可以不设置,因为其默认值和方式二保持一致。

Servlet的运行过程时

1):浏览器依据url(ip.port)发送给通信组件
2):浏览器根据http协议建立与服务器之间的连接
3):浏览器会将请求资源路径(demo1/hello)以及相关的信息按照http协议打成一个包
4):发送请求
5):服务器通信组件对请求中的数据包进行解析(拆包)
6):通信组建创建request对象,同时还会创建一个response对象,服务器解析请求数据包,将解析后的数据存放到request中 。
7):服务器通过appName(demo1)找到webapps目录中demo1目录(web应用),找到demo1下的web.xml
8):通过web.xml文件找到servlet完整的权限名称(包+类),之后依据反射机制创建该servlet实例
9):服务器调用servlet的service方法,在调用时会将事先创建好的request和response对象当做参数传给servlet方法调用 request对象的方法获取请求中的参数,然后会进行相 应的业务处理,再将处理后的结果放入response对象中。
10):服务器从response对象中获取数据
11):服务器将取出的数据打包
12):服务器将数据发送给浏览器
13):浏览器从数据包中解析出相应的数据(拆包)
14):浏览器生成相应的界面(html)

表单的请求传输_第1张图片
1.png

如何获取表单中的参数

String value=request.getParemeter("key");
注意:
1.如果key不存在,返回null
2.如果表单中没有输入值,则返回“”
3.如果表单中有多个key名字都相同demo1、register?city=bj&city=sh&city=gz
String[]values=request.getParameterValues("key");

请求方式:

get

你用url传递参数
浏览器会把参数自动附加到url上传递给服务器,在传参的过程中参数是可见的
/demo/register? code=zs&pw=1234
对传递的参数有限制,很小
使用get的时机:
--传递很少的数据时
--查询,删除

post

利用实体内容传参
数据在传递过程中不可见,相对安全
对数据的大小没有限制,可以很大
使用post的时机:
--传递的数据较多
--如新增保存,修改保存,注册,等领

你可能感兴趣的:(表单的请求传输)