码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA基础篇—Servlet小结

时间:2017-08-20 15:49:22      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:逻辑   统一通信   lte   而且   全局变量   ice   url   uri   服务器端   

一、get请求和post请求的区别:
1.get请求是通过url传递参数,post请求是通过请求体传递参数的
2.get请求最多允许传递255个字符,对长度有限制,所以数据比较大的时候我们使用post请求,尤其是做上传的时候用post请求!
3.get请求我们在浏览器上是可以看到请求参数的,而post请求在浏览器地址栏中是看不到请求参数的!

4.在表单中一般我们都使用post请求,除了在表单中,页面中的其它地方基本上都是使用get请求!

二、servlet是web的三大组件之一;web的三大组件是指:Servlet、Filter、Listener

三、生命周期

servlet是由tomcat服务器来管理的!

servlet生命周期:是指servlet对象由产生到销毁的过程!

servlet生命周期涉及的几个方法:
1.构造器方法:只会在第一次访问这个servlet的时候调用一次,调用一次就说明servlet是单例的,但是servlet是多线程的,
非线程安全的,也就是说在servlet中我们尽量不要在service方法中操作全局变量!

2.init方法:init方法只会在第一次访问servlet的时候调用一次,对servlet对象进行初始化操作!

3.service:service方法会在每次访问这个servlet的时候都调用一次,而且我们的业务逻辑也是写在这个service方法!

4.destroy方法::destroy方法只会在我们的项目卸载的时候调用一次,也就是说在服务器关闭的时候会在服务器关闭的时候调用一次!

四、转发和重定向

转发:当浏览器向服务器发送请求的时候,服务器自己不处理,而是调用其它的web资源进行处理!

重定向:当浏览器向服务器发送请求的时候,服务器返回给浏览器一个特殊的响应,这个特殊的响应告诉浏览器再向另一个地址发送一个请求!

转发和重定向的区别:
                   发生在浏览器端还是服务器   浏览器的请求次数    浏览器地址栏是否发生变化   浏览器是否能够感知到
转发[request]      发生在服务器端                   1                                不发生变化                          感知不到
重定向[response]  发生在浏览器端                 2                                 发生变化                          能感知到!

五、编码问题分析及请求编码

通信双方在进行通信的时候,实际上是将通信的内容【信息】是按照一定的规则转化为二进制进行通讯的

而这个一定的规则就是字符的编码:ascii,gb2312,gbk,iso8859-1,utf-8;

在请求到达的时候,另一方就需要解码!

乱码原因:
通信双方的编码方式和解码方式不一致造成的,
解决办法:
统一通信双方的编码方式和解码方式,都使用utf-8编码!

编码分类:
请求编码
浏览器编码---》服务器解码iso8859-1
响应编码
服务器编码----》浏览器解码
服务器端默认使用的是iso8859-1编码,而浏览器默认使用的是gb2312,当然我们也可以在页面中告诉浏览器用什么编码方式!


get请求:
统一浏览器和服务器端的编码格式为utf-8编码:在server.xml文件的connector标签中指定编码格式为utf-8编码:URIEncoding="utf8"
post请求!
我们可以在post方法中在第一次获取请求参数之前通过request.setCharacterEncoding("utf-8");来设置解码格式!

 

JAVA基础篇—Servlet小结

标签:逻辑   统一通信   lte   而且   全局变量   ice   url   uri   服务器端   

原文地址:http://www.cnblogs.com/lc-java/p/7399942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!