Jsp九大内置对象及其作用域

时间:2022-10-12 19:59:56

本文主要介绍Jsp九大内置对象及其作用域,着重介绍几个常用的,希望对初学者有所帮助。

1 Jsp九大内置对象

Jsp九大内置对象及其作用域

2 详细介绍

2.1 request javax.servlet.http.HttpServletRequest

对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。request对 象的作用域为一次请求。
常用方法:
getParameter(String strTextName) 获取表单提交的信息.
getParameterNames() 获取客户端提交的所有参数的名字。
getServletPath() 获取客户提交信息的页面。String strServlet=request.getServletPath();
getRemoteHost() 获取客户机的名称。String clientName=request.getRemoteHost();
getServerName() 获取服务器名称。 String serverName=request.getServerName();
getServerPort() 获取服务器的端口号。 int serverPort=request.getServerPort();

2.2 response javax.servlet.http.HttpServletResponse
代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

常用方法:
response.setContentType(String s);  参数s可取text/html,application/x-msexcel,application/msword等。
Response的sendRedirect(URL)方法实现客户的重定向。

2.3 session  javax.servlet.http.HttpSession
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。
session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

常用方法:
public String getId():获取Session对象编号。
public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。
public Object getAttribute(String key):获取Session对象中含有关键字的对象。
public Boolean isNew():判断是否是一个新的客户。

2.4 application javax.servlet.ServletContext
application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都是同一个,直到服务器关闭。但是与Session对象不同的时,所有客户的Application对象都时同一个,即所有客户共享这个内置的Application对象。
常用方法:
setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。
getAttribute(String key):获取Application对象中含有关键字的对象。

页面统计访问量例子:

Integer count = (Integer)application.getAttribute("accessCount");

if (count == null) {
  application.setAttribute("accessCount", 1);
  out.println("访问次数: 1");
} else {
  application.setAttribute("accessCount", count + 1);
  out.println("访问次数: " + (count + 1));
}

2.5 pageContext javax.servlet.jsp.PageContext
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。
pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

2.6 config javax.servlet.ServletConfig
config 对象的主要作用是取得servlet配置参数。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
常用方法:
getInitParameter(name) String 获取Servlet初始化参数
getInitParameterNames() Enumeration 获取Servlet所有初始化参数名称
getServletContext() ServletContext 获取当前Application context
getServletName() String 获取Servlet名称

读取Serlvet配置例子:

web.xml

<servlet>
<servlet-name>config</servlet-name>
<jsp-file>/config.jsp</jsp-file>

<init-param>
<param-name>configName</param-name>
<param-value>this is value</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>config</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>

 Jsp页面

<%
String value = getServletConfig().getInitParameter("configName");
out.write(value);
%>

3 作用域

request和response的作用域都是一次请求。

application作用域就是服务器启动到关闭的整段时间,在这个作用域内设置的信息可以被所有应用程序使用。application作用域上的信息传递是通过ServletContext实现的。注意,所有客户共享这个内置的Application对象。

session作用域比较容易理解,同一浏览器对服务器进行多次访问,从访问服务器到关闭浏览器。

page对象的作用范围仅限于用户请求的当前页面,对于page对象的引用将在响应返回给客户端之后被释放,或者在请求被转发到其他地方后被释放。对page对象的引用通常存储在pageContext对象中。