Servlet的九大默认对象

Servlet的九大默认对象

一、request

转译后对应HttpServletRequest/ServletRequest对象
封装请求对象,代表的是来自客户端的请求HttpServletRequest。包括从GET/POST请求传递过来的参数

封装的数据有3部分: header parameter attribute

getHeader("Accept"):String getIntHeader getDateHeader
getParameter("name"):String getParameterValues(“hobby”):String[]
setAttribute("name",Object) getAttribute("name") removeAttribute("name")

上传数据
1、表单 <form method="post" enctype="multipart/form-data">
2、在Servlet中则可以通过getInputStream或者getReader获取输入流以处理客户端启动的文件
3、引入jspSmartupload组件简化上传处理开发

getRequestDisapatcher(“bbb.jsp”).forward(request,response)

  • 地址栏不变
  • 共享request

二、response

转译后对应HttpServletRespons/ServletResponse对象
封装响应对象,代表的是对客户端的响应HttpServletResponse。网页传回客户端的信息

设置响应头

setHeader("name","value") setIntHeader setDateHeader
  • 避免客户端缓存

  • 以附件方式打开

setContentType(“text/html;charset=utf-8”)

MIME多用途互联网邮件扩展—用来识别文件内容类型 text/html image/jpeg

response.sendRedirect(“bb.do”); 重定向

  • 地址栏自动变化
  • 不共享request

三、page

转译后对应this
this 封装页面对象,是Object类型的,该对象代表了正在运行的由JSP文件产生的类对象,相当于this。一般情况下不建议使用该对象是Object类型的,所以可以合法调用的方法都是Object中定义的方法toString equals hashcode wait notify notifyAll

例如:

<%!
public void pp(){}
%>
//页面种进行调用
<% page.pp(); %> 语法错误,因为page是Object类型的,所以按照Object进行检查
<% this.pp(); %> 语法正确

四、session

session转译后对应HttpSession对象
封装会话对象,代表服务器与客户端所建立的会话,在不同的JSP页面中保留客户信息的情况下用于跟踪用户状态

1、实现在当前应用中跨页面数据传输
session.setAttribute(“name”,Object) getAttribute(“name”):Object removeAttribute(“name”)

2、session数据存储在服务器端,
所以需要有一个标识值用于区分不同用户。这个值存储在客户端的内存Cookie中session.getId():String

3、清空session,例如退出登录
session.invalidate() 清空session对象里的东西,并不指清除这个session对象本身

4、针对非正常退出应用,针对session有个超时设置

<session-config>
<session-timeout>30</session-timeout> 这里的单位为分钟,Tomcat即使不作配置,默认就是30分钟
</session-config>
一般如果安全性要求高,则时长设置短一些;如果要求对客户友好,则时长设置长一些

五、config

转译后对应ServletConfig对象
封装代码配置对象,该对象提供一些该Servlet的配置信息,是javax.servlet.ServletConfig接口的实现。javax.servlet. ServletConfig 的实例,该实例代表该JSP 的配置信息。常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。事实上, JSP 页面通常无须配置,也就不存在配置信息。因此,该对象更多地在Servlet 中有效。

六、application

封装应用程序对象,负责提供应用程序在服务器中运行时的一些全局信息,是一个容器级的共享对象数据

1.什么是application:

服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。

2.application对象常用方法:

  • (1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。
  • (2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。

3.获取上下文的初始化参
设置

<context-param>
<param-name>counter</param-name>
<param-value>123</param-value>
</context-param>

获取

Object obj=application.getInitParameter("counter");
out.println(obj);

4.用于读取应用路径下的文件

InputStream is=application.getResourceAsStream("bb.properties"); //该文件位于
webapp根目录下
Properties ps=new Properties();
ps.load(is);
String val=ps.getProperty("abc");
out.println(val);

七、exception

异常信息的对象,封装异常对象,代表了JSP文件运行时所产生的并且没有被捕获的例外对象,此对象不能在一般JSP文件中直接使用,而只能在使用了 <%@ page isErrorPage="true "%> 的JSP文件中使用

八、out

用来向客户端自定义输出内容,代表了向客户端发送
数据的对象,是javax.servlet.jsp.JspWriter接口的实现。JspWriter是带缓冲的版本

九、pageContext

包装页面上下文对象,代表的是当前页面运行的一些属性,例如可以获取session、request、response、exception、ServletContext和ServletConfig的引用。是javax.servlet.jsp.PageContext接口的实现

四个作用域:request域 session域 application域 page域

application:
全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。

session:
会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。

request:
请求作用域,就是客户端的一次请求。

page:
一个JSP页面。

以上作用范围使越来越小, request和page的生命周期都是短暂的,他们之间的区别就是:一个request可以包含多个page页(include,forward以及filter)。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值