javaweb学习心得
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
javaweb学习心得
javaweb学习笔记___d9
2014-12-14 22:51
session (会话)
session对象
1、存在于服务器端
2、依赖于线程
3、session的生命周期,跟一次浏览器窗口有关,只要窗口不关闭,session 便存在,所以称会话。
session
1、技术内核使用cookie:
session参在与服务器端
服务器端为多个session创建不同的session id
把session id以cookie的形式送入到客户端
request.getsession()内涵是:在cookie中查找
session id,若cookie中存在sessionid,则根据
sessionid,将sessionid对应的session找到,
并返回;若cookie中并不存在sessionid,
服务器端创建session,并将sessionid写入到cookie中。
2、当关掉对话窗口(结束一次会话)时,session并没有被删除,只是关掉对话窗口时,cookie被清空
无法再获得sessionid,无法找到对应的session,但是session还是存在于服务器端。
若想真正删除session,需要调用httpsession中的invalidate()方法,使得session失效。
3、服务器为了考虑效率,不会让无用的session存在很久,http协议是
无连接协议,服务器端无法判断客户端是否关闭“会话”,
所以服务器设置了失效时间。若用户在了段时间内,不操作session,则
系统删除session。
我们可以设置此时间setmaxinactiveinterval(),但不推荐用户自行设置。
4、session技术在很大程度上,依赖于cookie,若cookie被禁用,或浏览器不支持cookie,则session就无法使用。
5、为了解决第四点所引申的session不可用的问题。我们使用url重写,
将sessionid通过地址栏提交参数,发给服务器端。
使用response.encodeurl()在地址栏中加载sessionid通过
request.getparameter(jsessionid)得到sessionid
a、string url encodeurl(string url);通过超链接,重新发出请求,此请求会在地址之后自动加上sessionid及其id值,
此方法又被子称为url重写,或重新封装。
b、string url encoderedirecturl(string url);将地址封装成
sendredirect方法所需要的地址,并在此地址后加入sessionid
servlet api小结:
httpservletrequest:接口
1、setattribute()、getattribute()、getattributenames
getparameter()//只能获得表单中的内容
2、getcharacterencoding()、setcharacterencoding()
获得、设置request中的数据编码方式
3、getcontenttype()得到mime,即ie文件打开的方式
4、cookie getcookies()
得到当前所有的cookie
5、getsession()
获得或创建session
6、getrequestdispatcher(string path)将目标页面封装,为了forward()进行页面转向。
7、getrequestedsessionid()得到一个session的id
总结:
request对象封装了客户端的请求和相关信息。
包括:
1、cookie
2、封装http协议的报头(请求方式、请求服务器的端口、请求服务器ip 地址、编码方式、
请求的项目用的名字、请求消息的长度、浏览器的信息、客户端信息??)
3、表单数据
httpservletresponse:接口(响应)
用它跟客户端联系,并且向客户端发送数据
1、getcharacterencoding()得到向客户端发送数据的默认编码方式。
2、getcontenttype()得到向客户端发送数据的默认类型(html或者jpeg
等等)。
3、getoutputstream()得到与客户端建立的输出字节流,传输二进制。
4、getwriter()得到与客户建立的输出字符流,传输文本文件。
5、setcharacterencoding()设置的是要发送给客户端的数据的编码方式。
6、setcontenttype(string type)设置并告知客户端,执行这些二进制时,用何种类型打开(html、jpeg等等)。
7、addcookie(cookie cookie)将cookie的键和键值成对的送到客户端
8、一些的set方法用来指定客户端运行时的一些属性。例:缓存、打开方式、消息头的控制等等
9、encodeurl(string url)、encoderedirecturl(string url)**在地址后追加session的id,用来实现cookie被禁用后,session依然可以使用。
10、sendredirect(string location)页面的重定向
cookie:类
1、cookie(string name,string value)创建cookie并将键,键值,存入到cookie中
2、getmaxage(int)设置cookie的生命服周期,当参数是负数时:窗口(会话)被关掉时,清空cookie
3、getname()获得cookie中的键
4、getvalue()获得cookie中的健值
httpsession:接口
1、getattribute(string name)、setattribute(string name)
2、getid()获得session的唯一标识id
3、getmaxinactiveinterval()、setmaxinactiveinterval()得到和设置session的失效时间
4、invalidate()使得session失效
5、isnew()布尔类型,判断session是否是新创建的
httpservlet:类
1、doget(httpservletrequest req,httpservletresponse resp)
当用户以get方式发出请求时,servlet调用此方法
2、dopost(httpservletrequest req,httpservletresponse resp)当用户以post方式发出请求时,servlet调用此方法
3、public void init()throws servletexception
用户第一次请求servlet的时候,容器需建立servlet对象,同时调用
init()方法