ServletConfig / ServletContext / ServletRequest / ServletResponse

一. ServletConfig:封装了Servlet得配置信息,并且可以获取ServletContext对象。

1 获取初始化参数

  a. 配置初始化参数

<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.bwr.start.HelloServlet</servlet-class>
    <!-- init-param节点必须在load-on-startup前 -->
<init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</init-param>
    <init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

  b. 获取初始化参数

    getInitParamter(String name)   获取Servlet指定名称的初始化参数

    getInitParameterNames()    获取Servlet中所有的初始化参数名的枚举值

       public void init(ServletConfig config) throws ServletException {
System.out.println("init...");
String name = config.getInitParameter("name");
System.out.println("name: " + name); Enumeration<String> params = config.getInitParameterNames();
while(params.hasMoreElements()) {
String param = params.nextElement();
String value = config.getInitParameter(param);
System.out.println(">> " + param + ": " + value);
}
}

    Servlet加载时后台输出结果:

name: tom
>> encode: utf-8
>> name: tom

2  获取Servlet名称   getServletName()

3  获取Servlet上下文 getServletContext()

二. ServletContext

  1.Servlet引擎为每个WEB应用程序都创建一个对应的ServletContext对象,在Servlet中可以通过ServletConfig的getServletContext()方法获取。

  2.由于一个WEB应用中所有Servlet共享同一个ServletContext对象,所以也被称之为application对象(WEB应用程序对象)

  3.可以通过ServletContext获取当前WEB应用各方面的信息:

  ① 获取当前WEB应用初始化参数

    配置:在web.xml文件的web-app标签下配置

  <context-param>
<param-name>web-name</param-name>
<param-value>Hello</param-value>
</context-param>
<context-param>
<param-name>version</param-name>
<param-value>2.2.1</param-value>
</context-param>

    获取:通过ServletContext的getInitParamter(String name)和getInitParamterNames()获取。

  ② 获取当前WEB应用的某个文件的绝对路径

    a.文件必须位于WEB应用内,即在项目的WebContent下;获取的绝对路径是应用部署后文件所在的绝对路径

    b. 使用方法servletContext.getRealPath("/note.txt"),"/"在eclipse项目结构中代表WebContent

  ③ 获取当前WEB应用的名称

    servletContext.getContextPath()  // "/JavaWeb01"

  ④ 获取当前WEB应用某个文件对应的输入流

    servletContext.getResourceAsStream(String path);  // path前的"/"为WEB应用的根目录

    a.在eclipse项目下src下有文件db.properties

       ServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");

       getClass().getClassLoader().getResourceAsStream("db.properties");

    b.在eclipse项目下WebContent下有文件note.txt

      ServletContext().getResourceAsStream("/note.txt");

  ⑤ 与Attribute相关的方法(后文详述) 

引子:如何在Servlet中获取请求信息?

Servlet的service方法用于应答请求,每次请求都会调用service方法:

    public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException

  ServletRequest:封装了请求信息,从中可以获取任何请求信息

  ServletResponse:封装了响应信息,可以通过它想用户传递响应

  上述二者都是由Servlet容器实现,并传递给service方法

三. ServletRequest

1.获取请求参数

  String getParamter(String name)  

    根据请求参数名称获取参数值,若请求参数有多个值(checkbox)只能获取第一个值

  String[] getParameterValues(String name)

    用于获取请求参数有多个值的情况

  Map getParamterMap() 

    获取参数名和参数值的键值对Map<String, String[]>

  Enumeration getParameterNames()

      获取请求参数名对应的Enumeration

-- 以下为HttpServletRequest的方法

2.获取请求的URL

  HttpServletRequest.getRequestURL()

3.获取请求方法

  HttpServletRequest.getMethod()

4.获取GET请求的查询字符串

  HttpServletRequest.getQueryString()

5.获取请求的Servlet的映射路径

  HttpServletRequest.getServletPath()  //web.xml配置的url-pattern

6.与Attribute相关的方法(后文详述)

四. ServletResponse

1. ServletResponse.getWriter()

  返回PrinterWriter对象,调用该对象的print()方法,可以把内容直接显示到浏览器上

2.ServletResponse.setContentType(String type)

  设置响应类型, setContentType("application/msword")  输出word文档,具体类型可到tomcat下得web.xml文件中查询

3.ServletResponse.getOutputStream()  

  获取文件输出流

4.HttpServletResponse的方法在后文HttpServlet中描述,例如sendRedirect(String location)

Servlet/JSP-02 Servlet相关类的更多相关文章

  1. 从0开始学Java——JSP和Servlet——jsp转servlet出错的三个典型场景

    由于jsp终究是要转换为servlet的java文件,然后再编译为.class文件,最后才执行,那么在这过程的任何一个步骤都可能有问题,主要包括三个方面,下面逐一分析: 一.JSP转换为Servlet ...

  2. Java开发工程师(Web方向) - 02.Servlet技术 - 第4章.JSP

    第4章--JSP JSP JSP(Java Server Pages) - 中文名:Java服务器页面 动态网页技术标准 JSP = Html + Java + JSP tags 在服务器端执行,返回 ...

  3. jsp与servlet(转)

    一.基本概念 1.1 Servlet Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面.它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器 ...

  4. Web---演示Servlet的相关类、表单多参数接收、文件上传简单入门

    说明: Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代 ...

  5. Web---演示Servlet的相关类、下载技术、线程问题、自定义404页面

    Servlet的其他相关类: ServletConfig – 代表Servlet的初始化配置参数. ServletContext – 代表整个Web项目. ServletRequest – 代表用户的 ...

  6. 面试之jsp、Servlet相关知识——生命周期, 区别等

    1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...

  7. jsp、Servlet相关知识介绍(转)

    1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...

  8. Servlet主要相关类核心类 容器调用的过程浅析 servlet解读 怎么调用 Servlet是什么 工作机制

      WEB简介   Web项目 是 B/S结构 浏览器/服务器模式的 浏览器发起请求,服务器作出响应   请求的发起和响应使用HTTP协议进行通讯 所谓协议也就是一种固定格式   而Socket是应用 ...

  9. Servlet的相关类--ServletConfig(接口)

    ServletConfig是一个接口,有关配置文件的 servlet的配置信息<---对应--->ServletConfig web.xml配置文件会被加载到内存中,然后解析器会对它进行解 ...

  10. Servlet及相关类和接口

    上一篇介绍了在Web项目中web.xml文件的配置信息,本篇主要介绍里面非常重要的配置——Servlet配置,重点介绍与Servlet相关的几个接口和类,包括Servlet接口.ServletConf ...

随机推荐

  1. 容器--HashMap

    一.前言 看了下上一篇博客已经是半个月前,将近20天前了,很惭愧没有坚持下来,这期间主要是受奥运会和王宝强事件的影响,另外加上HashMap中关于rehash的实现比较不好理解,所以就一拖再拖.如果能 ...

  2. 跨平台日志清理工具 Log-Cutter v1.0.3 正式发布

    Log-Cutter 是JessMA开源组织开发的一个简单实用的日志切割清理工具.对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方 ...

  3. 神奇的Bank系统之旅哦

        奋斗不能等待,我们不能等到垂暮之年再去“全力以赴”.让我们从现在开始,为理想而努力,为人生而拼搏.精诚所至,金石为开,相信奋斗会让我们的青春之花绽放得更加绚烂,让我们的人生之路走下来不留遗憾. ...

  4. vim自动补全插件YouCompleteMe

    前言 Valloric/YouCompleteMe可以说是vim安装最复杂的插件之一,但是一旦装好,却又是非常好用的.YouCompleteMe简称ycm 在安装折腾的过程中,我再一次的体会到,除了官 ...

  5. prototype和__proto__

    一.prototype和__proto__的概念 prototype是函数的一个属性(每个函数都有一个prototype属性),这个属性是一个指针,指向一个对象.它是显示修改对象的原型的属性. __p ...

  6. js的动态加载、缓存、更新以及复用(三)

    总体思路 1.  建立一个js服务,该服务实现通用js文件的加载.依赖.缓存.更新以及复用. 2.  各个项目如果使用通用js,可(bi)以(xu)使用js服务实现加载. 3.  Js服务只提供通用的 ...

  7. $('div a') 与$('div>a'),.div+.div2与.div~.div2

    $('div a'):div标签下所有层次a元素的jquery对象 $('div>a'):div标签下子元素层次a元素的jquery对象 <body> <div class=' ...

  8. Dom Animator – 提供 Dom 注释动画的 JS 库

    DOM 动画是一个极好的 JavaScript 库,用来在页面的 DOM 注释中显示小的 ASCII 动画.这对于那些检查你的代码的人是一个小彩蛋,仅此而已.它是一个独立的库,不依赖 jQuery 或 ...

  9. 25个最佳的 WordPress Gallery 画廊插件

    WordPress 画廊插件最适合用于作品展示网站,特别对于那些想以一个奇特的,现代的方式展示他们作品的摄影师.如果你想为你安装 WordPress Gallery 插件,那么下面的是你想要的. 本文 ...

  10. 轻松掌握:JavaScript状态模式

    状态模式 状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类. 状态模式的使用场景也特别明确,有如下两点: 一个对象的行为取决于它的状态,并且它必须在运行 ...