session cookie等

来源:互联网 发布:mac word 大小写转换 编辑:程序博客网 时间:2024/05/29 18:34

Session   信息保存在服务器端,为了安全,项目一般都是用Session,可以防止非法登录

Cookie        信息保存在客户端

 

Http是无状态的,也就是说不需要记录使用者是谁。因此效率比较高;而比如登录邮箱是有状态的。

可以用HttpSession来保持状态。

 

Session的生命周期:

          当客户第一次与服务器连接时,服务器为客户创建一个新的会话对象,并为会话对象生成一个惟一的ID

          当服务器处理完请求后,会将在生成的响应中将会话ID加入响应中去,与其它信息一直返回客户端

          服务器会为客户端保存这个会话对象一段时间

          客户端下一次访问服务器时,会在请求头中加入会话ID

 

如何得到一个session:

 HttpSession session = req.getSession(bollean 参数);默认是true,意思是已经有session就使用,没有就创建;false是有session就是用,没有就什么也不做,主要用在注销操作。

 

可以用超级链接实现用户信息在多个页面转发

 

getParametergetAttribute的区别:

前者是取得前台参数,不需要set方法就可以直接取得;

后者是从后台取得数据,需要set方法才能使用get方法取得后台参数。

 

Session的销毁的3种方式:

Invalidate()立即注销;

web.xml配置,可配置一个存活时间;

setMaxInactiveInterval()一般不用这个

 

URL重写:

URL重写的重要方法:

          response.encodeURL(“”)

          Response.sendRedirect(response.encodeRedirectURL(“”));

Response.encodeRedirectURl作用是将客户端ID加到了URL后面,相当于重定向了一个新的请求

 

会话中的几种重要方法:

        Session.isNew();

判断session是否为新建立的

        Session.invalidate();

清空session对象里的东西,并不指清除这个session对象本身

        Session.setAttribute();

        Session.getAttribute();

JSPrequestsetAttribute()getAttribute()Session.setAttribute();Session.getAttribute();

有什么不同:

作用域不同:  
  1
request对象的作用域是其请求所指向的网页,如a.jsp网页所请求的网页是next.jsp,那么request对象所存储的变量就只能由 a.jsp传向next.jsp网页,而不能实现多个网页之间的状态传递,注意请求网页页可以是Servlet程序
 
  2
session对象所存储的变量可以在一次会话过程中传递,如登录电子商务网站,购物车的状态就是存储在session对象中的
 
 

 

Cookiesession的区别:

具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。

 

 

防止非法登录:

success.jsp的前面加入:

<%if((String)session.getAttribute("userName")==null){

   

    response.sendRedirect("/servlet_session_project/index.jsp");

 

} %>

如果在url里直接登陆,则userNamenull,如果为null则跳转到登陆界面。

原创粉丝点击