一:内置对象相关解释以及种类
内置对象,顾名思义,就是在jsp中不用new的对象,jsp中自带的,可以直接使用的 2. jsp中有9大内置对象,分别是: 请求对象:request 输出对象:out 响应对象:response 应用程序对象:application 会话对象:session 页面上下文对象:pageContext 页面对象:page 配置对象:config 异常对象:exception
二:详解其中几个重要的事内置对象
(一)request (1)request:作用域:仅限于一次请求,请求对象,存储客户端向服务端发送的请求信息
(2)request对象常见方法: string getParameter(Stringname):根据请求字段名Key,返回字段值value string [ ]getParameterValues(String name):根据请求字段名Key,返回多个字段值value void setCharacter Encoding:设置请求编码(编码格式“utf-8”) getRequestDispatcher(“b.jsp”).forward(request,response):请求转发的方式条状页面A->B getServerContext(); 获取项目的ServerContext对象
(3)页面跳转之——请求转发和重定向的区别 转发和重定向都可以实现页面的跳转: 转发:request.getRequestDispatcher("url").forward(request, response) 重定向:response.sendRedirect("url")
请求转发
重定向
(4)请求转发与重定向的区别 1、转发使用的是request.getRequestDispatcher()方法;重定向使用的是response.sendRedirect(); 2、转发:浏览器URL的地址栏不变。重定向:浏览器URL的地址栏改变; 3、转发是服务器内部行为,重定向是客户端行为; 4、转发是浏览器只做了一次访问请求。重定向是浏览器做了至少两次的访问请求; 5、转发可以携带数据,信息不会丢失;重定向不能携带参数,信息会丢失(request范围)。 6、转发只能在服务器内部转发;重定向没有限制
(二)session(会话) (1)session的解释
Session:会话技术,从客户端打开浏览器访问服务器,到最后客户端关闭浏览器,整个过程称为一次会话。 在这个会话的过程中,服务器会针对每个客户端创建一个和客户端相关的唯一的临时容器,这个容器用于保存当前客户的所有信息。 并且在给客户端响应数据的时候,会给客户端回送一个唯一标识当前客户端相关的临时容器的id,在客户端下次访问服务器的时候,会携带这个id信息,在服务器端就可以找到和客户端相关的临时戎, 继续使用这个临时容器。 如果获取这个Session对象,为每个客户端服务:在servlet可以通过Request对象获取和当前客户端相关的唯一Session对象。在jsp中可以直接使用
(2)session的销毁时间 1、一般在web服务器中Session有默认的存活时间,一般是半小时。如果在30分钟内,用户一直没有做任何操作,这时服务器会当前这个Session自动的销毁。 2、不正常关闭服务器。正常关闭服务器,服务器会把这个Session对象使用io流中的序列化技术保存在tomcat/work目录下 3、在Servlet程序中手动的销毁Session对象。session.invalidate(); Session的存活时间可以在web.xml中配置也可以通过方法指定: setMaxInactiveInterval(int interval); //单位是秒,一般是在存储值的时候进行设置。
(3)session和cookie之间的联系(例子讲解)
(3)cookie的介绍 1. Cookie技术主要需要依赖于给用户响应数据时,给用户的本地写数据。 创建一个 cookie,cookie 是 servlet 发送到 Web 浏览器的少量信息,这些信息由浏览器保存,然后发送回服务器。cookie 的值可以唯一地标识客户端,因此 cookie 常用于会话管理。 Cookie技术主要解决的是在客户端和服务器进行交互的过程中,保存用户的数据,这些数据主要是通过服务器使用Cookie对象写到客户端的浏览器中。然后在浏览器中保存这些数据。Cookie对象可以保存用户和服务器的交互数据,但是需要保存在客户端。
2 获取cookie 需要使用HttpServletRequest对象中的getCookies方法,会得到一个Cookie数组,这是因为一个站点可能会存放多个Cookie数据 例如:Cookie[] cookies = request.getCookies(); 得到Cookie数组之后,判断cookies数组是否存在 cookies == null,如果cookies存在,根据cookie的name去查找指定cookie
发送cookie 创建好Cookie对象之后,需要使用HttpServletResponse中的addCookie方法,将Cookie对象添加到响应中,然后发给客户端。 例如:response.addCookie(cookie); 在Cookie对象中提供了getName可以获取Cookie的key值,提供的getValue可以获取key对应的value值,同时也可以使用setValue给当前的Cookie对象设置value值。 SetPsth设置cookie可以访问资源路径 SetMaxAge() - 设置cookie的生存时间
(4) session和cookie的区别
注意:cookie不是9大内置对象
因为cookie 不是9大内置对象之一,所以使用cookie时,必须要new 一个cookie的对象
(三)application
全局变量:整个项目运行期间 都有效(切换浏览器,仍然有效),但是关闭服务器或者访问其他项目都不行
(四)三个对象的对比