JSP&Servlet知识点记录

JSP九大内置对象

  • page页面对象
    page对象是javax.servlet.jsp.HttpJspPage类的实例。page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象,相当于Java类中的关键字this。
  • request请求对象
    request对象是javax.servlet.ServletRequest类的实例,代表客户端的请求。request包含客户端的信息以及请求的信息,附带的地址参数等。每次客户端的请求都会产生一个request实例。
  • response响应对象
    response对象是javax.servlet.ServletResponse类的实例,代表客户端的响应。服务器端的任何输出都通过response对象发送到客户端浏览器。每次服务器端都会响应一个response实例。
  • config配置对象
    config对象是javax.servlet.ServletConfig类的实例,ServletConfig封装了配置在web.xml中初始化JSP的参数。JSP中通过config获取这些参数,每个JSP文件中有且只有一个config对象。
  • pageContext页面上下文对象
    pageContext对象为javax.servlet.jsp.PageContext类的实例。pageContext对象代表当前JSP页面编译后的内容,通过pageContext能够获取到JSP中的资源。
  • application应用程序对象
    application对象是javax.servlet.ServletContext类的对象。application封装JSP所在Web应用程序的信息,例如web.xml中配置的全局的初始化信息。Servlet中的application对象需要通过ServletConfig.getServletContext()来获取,整个Web应用程序对应一个application对象。
  • out输出流对象
    out对象是javax.servlet.jsp.JspWriter类的实例。服务器向客户输出的字符内容可以通过out对象输出。获取方法: PrintWriter out = response.getWriter()。
  • session会话对象
    session对象是javax.servlet.http.HttpSession类的实例。session与cookie是记录客户访问信息的两种机制,session是用于服务器端保存用户信息,cookie用于在客户端保存用户信息。Servlet中通过request.getSession()来获取session对象,而JSP中可以直接使用。如果JSP中配置了<%@page session=”false”%>,则隐藏对象session不可用。每个用户对应一个session对象。
  • exception异常对象
    exception对象为java.lang.Exception类的对象。exception封装了JSP中抛出的异常信息。使用exception异常对象,需要设置<%@page isErrorPage”true”%>。异常对象exception通常被用来处理错误页面。

JSP四大作用域对象

域对象的作用:保存数据、获取数据、共享数据。

page域:      只能在当前jsp页面使用
request域:   只能在同一个请求中使用,请求转发会携带这个数据
session域:   只能在同一个会话(session对象)中使用,从打开浏览器到关闭浏览器
context域:   只能在同一个web应用(服务器中有效)使用,从打开服务器到关闭服务器

Session和Cookie的区别

HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。而会话跟踪是很重要的事情,理论上一个用户的所有请求操作都应该属于同一个会话。

Cookie

Cookie就是这样的一种机制,可以弥补HTTP协议无状态的不足。它是一种发送到客户浏览器的文本串句柄,并保存在客户机硬盘上,可以用来在某个WEB站点会话间持久的保持数据。注意: Cookie的maxAge属性为失效时间,单位秒。如果为正数,则该Cookie在maxAge秒之后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为–1。

Session

Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,客户端浏览器再次访问时只需要从该Session中查找该客户的状态。

Session在用户第一次访问服务器的时候自动创建。Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除,这个时间就是Session的超时时间。

区别

Cookie机制是通过检查客户身上的“通行证”来确定客户身份,Session机制是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。

  • cookie数据存放在客户的浏览器上,session数据放在服务器上。
  • cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
  • 单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。(Session对象没有对存储的数据量的限制,其中可以保存更为复杂的数据类型)
  • 登陆信息等重要信息存放为session;其他信息如果需要保留,可以放在cookie中。
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42647711/article/details/114022542