基于Servlet和JSP服务器应用对象

基于Servlet和JSP服务器应用对象


前言

已经学完Servlet和JSP,这篇主要介绍其相关的服务器应用对象。

一、服务器应用和Web服务器

提到“web服务器”时,通常要把它认为是以HTTP为核心、web UI为向导的应用。当有人说到“应用服务器”时,你可能想到“高负载、企业级特性、事务和队列、多通道通信(HTTP和更多的协议)”。但现在提供这些需求的基本上都是同一个产品。
在Java方面,web容器一般是指Servlet容器。Servlet容器是与Java Servlet交互的web容器的组件。web容器负责管理Servlet的生命周期、把URL映射到特定的Servlet、确保URL请求拥有正确的访问权限和更多类似的服务。

二、服务器应用对象

ServletRequest.
ServletResponse
ServletConfig·
ServletContext·
HttpSession
out

在这里插入图片描述

1.ServletContext对象

ServletContext对象
·存储整个Web应用的相关信息
·存储全局共享的数据
在一个Web服务器中,每个Web应用程序都与一个上下文( context)环境关联,且不同的Web应用之间是彼此独立的。
·相当于子容器
·一个独立的ServletContext对象
·唯一的。
在Servlet中可以通过以下两种方式获取ServletContext对象的引用:

·从ServletConfig对象中获取:
. ServletConfig config=getServletConfig();
. ServletContext context=config.getServletContext()
·从HttpServlet对象中获取:
. ServletContext context=getServletContext();

ServletContext对象的方法分类:

1).用于在Web应用范围内存取共享数据的法

public void setAttribute(String name, java.lang.Object object)设值public void get >Attribute(String name)取值
public Enumeration getAttributeNames()取名字
public void removeAttribute(String name)移除

2).用于获取与服务器相关信息的方法

public String getServerlnfo():返回Servlet容器的名字和版本号。
public String getServletContextName():返回Web应用程序的名字,即web.xml文件元素的值。
public int getMajorVersion()和public int getMinorVersion():返回Servlet容器支持的Java Servlet API的主版本号和次版本号.

3).与上下文初始参数相关的方法

public String getInitParameter(String name)用初始化参数名返回Web应用范围内匹配的初始化参数值.
public java.util.Enumeration getInitParameterNames()即web应用范围内的所有初始化参数名.

4).与本地资源路径相关的方法

public String getRealPath(String path):根据参数指定的虚拟路径,返回文件系统中的一个真实的物理路径。
public java.net.URL getResource(String path) throws java.net.MalformedURLException:返回一个映射到参数指定的路径的URL.
public java.io.InputStream getResourceAsStream(String path):返回一个用于读取参数指定的文件的输入流.

5).记录日志

public void log(String msg):向Servlet的日志文件中写入一条消息.
public void log(String message, java.lang.Throwablethrowable):向Servlet的日志文件中写错误日志,以及异常的堆栈信息.
以Tomcat服务器为例,日志文件位于<Tomcat安装目录>llogs目录下,日志文件的命名格式为: localhost_log.<日期>.txt,例如: localhost_log.2022-5-20.txt.

2.HttpSession对象

1)Session(会话)
客户端打开与服务器的连接发出请求和服务器响应的一段时间。
·客户端打开与服务器的连接发出请求和服务器响应请求的一段时间Servlet API定义了一个HttpSession接口,允许Servlet容器针对每一个用户建立一个HTIP会话(即HttpSession对象)。
HttpSession对象提供了和ServletContext对象相似的一组会话属性方法,在服务器端存放用户会话状态。
2)HttpSession对象创建
HttpSession对象是由Web服务器创建的,在Servlet中可以通过HttpServletRequest对象的getSession()方法获取,此方法的两种声明如下:
public HttpSession getSession():返回与当前请求相关联的会话,如果当前请求还没有一个相关联的会话,就创建一个HttpSession对象并返回。
public Httpsession getSession(boolean create):返回与当前请求相关联的会话对象。
·如果当前请求还没有一个相关联的会话,且参数为true,则创建一个Httpsession对象并返回
·如果参数为false,且请求没有相关联的会话对象,将返回null
**3)HttpSession对象应用
HttpSession对象的方法

public void setAttribute(String name, java.lang.object object)

·将一个对象绑定到Httpsession对象,使之成为一个会话属性。参数name指定属性名

public void getAttribute(String name)

·返回由name指定的会话属性,如果name指定的属性不存在将返回null。

public Enumeration getAttributeNames()

·返回一个Enumeration对象,该对象包含了所有存放在会话中的属性名。

public void removeAttribute(String name)

·根据参数指定的属性名,从会话中划除匹配的属性。

public void invalidate()

·使某个会话终止,并且删除绑定在其上的所有数据信息。

public void setMaxInactivelnterval(int interval)

·设置某个会话的超时时间,单位秒。
4)HttpSession对象销毁
HttpSession对象销毁
·会话过期
会话过期时间设置的方法有两种
a.在应用程序中,通过Httpsession中的setMaxlnactivelnterval(int interval),设置一个负数表示永不过期,但是设置为零,Session会立即失效。
b.在web.xml中配置其过期时间,如下所示:

session-config>
3o<1sessiontimeout>session-config >

·客户端关阉浏览器·调用方法invalidate0

三、总结

如果需要读取本地资源的数据,比如读一个xml配置文件的数据,用哪个对象呢?
ServletContext.
如果需要在页面或是Servlet之间跳转时传递参数值,最适合用哪个对象
request

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值