JavaWeb开发知识总结(HttpServletRequest,HttpServletResponse)

JavaWeb服务器开发知识总结(HttpServletRequest,HttpServletResponse)

1. ServletConfig类

ServletConfig类是Servlet容器进行该Servlet对象初始化时为该类创建的配置对象.该类存储了Servlet类的配置信息,在Servlet对象中可以获得自身的ServletConfig配置对象.

每一个Servlet类初始化时都会创建一个ServletConfig配置对象,该配置对象只属于该Servlet对象.

ServletConfig对象随着Servlet对象创建而被创建,随着Servlet对象的销毁而被销毁.

ServletConfig类是用来获取该Servlet类的配置参数,不能更改配置信息.

1.1 ServletConfig类常用方法:

String getServletName():获取该Servlet类在web.xml中配置在<servlet-name>标签中属性值;
String getInitParameter(String name):获取该Servlet类初始化时的指定名称的参数值;
public java.util.Enumeration<E> getInitParameterNames():获取该Servlet类的所有初始值的名称,以枚举类型返回;
ServletContext getServletContext():获取该项目ServletContext对象的引用.

1.2 ServletConfig获取Servlet在web.xml中的配置信息:

<!--web.xml文件-->
<!--Servlet的配置-->
<servlet>
  <servlet-name>ServletDemo</servlet-name>
  <servlet-class>com.itheima.download.ServletDemo</servlet-class>
  <!--Servlet的初始化参数配置-->
  <init-param>
    <!-- 初始化参数相当于是键值对,一般可以存储文件名和文件的读取路径 -->
    <param-name>参数名1</param-name>
    <param-value>参数值1</param-value>
  </init-param>
  <!--Servlet的初始化参数配置-->
  <init-param>
    <param-name>参数名2</param-name>
    <param-value>参数值2</param-value>
  </init-param>
  ...
</servlet>

2. ServletContext类(重要)

ServletContext类:服务器启动时为每一个项目工程创建一个单独的ServletContext对象,每个项目只有一个该对象.

ServletContext类有4中作用:获取全局配置参数,获取指定文件的MIME类型,作为域对象存储数据,读取web工程下的文件.

2.1 ServletContext类常用的方法:

String getInitParameter(String name):获取指定名称的全局初始化参数值;
Enumeration getInitParameterNames():获取全局初始化参数值的名称,以枚举类型返回;
void setAttribute(String name, Object object):用ServletContext对象存储绑定到指定名称的对象;
Object getAttribute(String name):获取存储在ServletContext对象中指定名称的对象;
void removeAttribute(String name):移除存储在ServletContext对象中指定名称的对象;
String getMimeType(String file):返回指定文件的MIME类型,如果MIME类型未知,则返回null;
java.io.InputStream getResourceAsStream(String path):以InputStream对象的形式返回位于指定路径上的资源;
String getRealPath(String path):为给定虚拟路径返回包含实际路径的String表现形式;

2.2 ServletContext类获取全局配置参数:

​ 在web.xml配置文件中,通过配置<context-param>标签(与Servlet标签是平级关系)来配置全局的初始化参数,在程序中通获取ServletContext的对象并通过其获取初始化参数的方法来获取初始化的参数,web.xml文件配置和程序中读取参数案例如下:

<!--web.xml文件-->
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
    <display-name>项目工程的名称</display-name>
    <!--Servlet的配置-->
    <servlet>
      <servlet-name>UserServlet</servlet-name>
      <servlet-class>com.itheima.servlet.UserServlet</servlet-class>
    </servlet>
    <!--Servlet的映射-->
    <servlet-mapping>
      <servlet-name>UserServlet</servlet-name>
      <url-pattern>/UserServlet</url-pattern>
    </servlet-mapping>
    <!--配置全局的初始化参数-->
    <context-param>
      <param-name>参数名1</param-name>
      <param-value>参数值1</param-value>
    </context-param>
    <context-param>
      <param-name>参数名2</param-name>
      <param-value>参数值2</param-value>
    </context-param>
    ...
</web-app>
// 在程序的doGet或者doPost方法中获取Servletcontext对象来读取配置信息,以doGet方法示例
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // 获取单个的初始化参数值
  // 获取名称为username的全局初始化参数的值
  String username = this.getServletContext().getInitParameter("username");
  // 获取名称为password的全局初始化参数的值
  String password = this.getServletContext().getInitParameter("password");
  // 输出获取的指定名称和其参数值
  System.out.println(name+"---"+value);

  // 获取所有的初始化参数值
  // 获取所有全局初始化参数的名称,以枚举类型返回
  Enumeration<String> e = this.getServletContext().getInitParameterNames();
  while(e.hasMoreElements()){
    // 根据名称获取指定名称的全局初始化参数的值
    String name = e.nextElement();
    String value = this.getServletContext().getInitParameter(name);
    // 输出获取的指定名称和其参数值
    System.out.println(name+"---"+value);
  }
}

2.3 ServletContext类获取文件的MIME类型:

​ 文件的MIME类型一般应用在文件下载中,客户端请求下载文件时,服务器需要将文件的MIME类型封装到响应的头信息中,然后客户端浏览通过服务器指定的MIME文件类型来下载文件.通过ServletContext的getMimeType方法获取文件的MIME类型.获取文件的MIME类型,见(HttpServletRequest文件下载案例).

2.4 ServletContext类作为域对象存取数据:

​ tomcat服务器启动时会为每一个项目创建一个单独的ServletContext对象(单例模式),该对象能被所有的Servlet对象所共享,并且可以通过其setAttribute方法存储数据,通过getAttribute方法获取指定名称的数据.

ServletContext对象的作用范围: 是整个项目工程,被所有的Servlet对象共享.

ServletContext对象的创建: tomcat服务器启动时为每一个项目创建一个单独的ServletContext对象.</

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值