在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。

当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

阅读ServletConfig API,并举例说明该对象的作用:
获得字符集编码
获得数据库连接信息
获得配置文件 ,查看struts案例的web.xml文件

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  7. <display-name></display-name>
  8. <servlet>
  9. <servlet-name>DemoServlet</servlet-name>
  10. <servlet-class>cn.csdn.web.servlet.DemoServlet</servlet-class>
  11. <init-param>
  12. <param-name>version</param-name>
  13. <param-value>2.0</param-value>
  14. </init-param>
  15. <init-param>
  16. <param-name>characterEncoding</param-name>
  17. <param-value>UTF-8</param-value>
  18. </init-param>
  19. <init-param>
  20. <param-name>driver</param-name>
  21. <param-value>com.mysql.jdbc.driver</param-value>
  22. </init-param>
  23. <init-param>
  24. <param-name>url</param-name>
  25. <param-value>jdbc:mysql://localhost:3306/3g</param-value>
  26. </init-param>
  27. <init-param>
  28. <param-name>user</param-name>
  29. <param-value>root</param-value>
  30. </init-param>
  31. <init-param>
  32. <param-name>password</param-name>
  33. <param-value>0904</param-value>
  34. </init-param>
  35. <load-on-startup>1</load-on-startup>
  36. </servlet>
  37. <servlet-mapping>
  38. <servlet-name>DemoServlet</servlet-name>
  39. <url-pattern>/demo/*</url-pattern>
  40. </servlet-mapping>
  41. <servlet-mapping>
  42. <servlet-name>DemoServlet</servlet-name>
  43. <url-pattern>*.do</url-pattern>
  44. </servlet-mapping>
  45. <welcome-file-list>
  46. <welcome-file>index.html</welcome-file>
  47. </welcome-file-list>
  48. </web-app>
  1. package cn.csdn.web.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.util.Enumeration;
  5. import javax.servlet.ServletConfig;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. public class DemoServlet extends HttpServlet {
  11. /**
  12. * @author 宋鹤贤
  13. */
  14. private static final long serialVersionUID = 1L;
  15. /* private ServletConfig config; */
  16. @Override
  17. public void destroy() {
  18. // TODO Auto-generated method stub
  19. super.destroy();
  20. System.out.println("销毁");
  21. }
  22. public DemoServlet() {
  23. super();
  24. // TODO Auto-generated constructor stub
  25. System.out.println("创建对象");
  26. }
  27. @Override
  28. public void init() throws ServletException {
  29. // TODO Auto-generated method stub
  30. super.init();
  31. System.out.println("初始化");
  32. }
  33. @Override /*HttpServlet父类有两个init方法,一个有参一个没参数*/
  34. public void init(ServletConfig config) throws ServletException {
  35. super.init(config);
  36. System.out.println("--------------" + config);
  37. /* this.config=config; */
  38. }
  39. public void doGet(HttpServletRequest request, HttpServletResponse response)
  40. throws ServletException, IOException {
  41. this.doPost(request, response);
  42. }
  43. public void doPost(HttpServletRequest request, HttpServletResponse response)
  44. throws ServletException, IOException {
  45. /* 设置编码 */
  46. request.setCharacterEncoding("UTF-8");
  47. String version = this.getServletConfig().getInitParameter("version");
  48. String characterEncoding = this.getServletConfig().getInitParameter(
  49. "characterEncoding");
  50. Enumeration<String> enumer = this.getServletConfig()
  51. .getInitParameterNames();
  52. // 遍历
  53. while (enumer.hasMoreElements()) {
  54. String name = enumer.nextElement();
  55. String value = this.getServletConfig().getInitParameter(name);
  56. System.out.println(name + "===" + value);
  57. }
  58. /* 获取一下PrintWriter对象 */
  59. PrintWriter out = response.getWriter();
  60. out.print("versin=" + version + "\tcharacterEncoding="
  61. + characterEncoding);
  62. }
  63. }

代码如上:我们发布到tomcat中,然后开启tomcat服务器,在浏览器中输入http://localhost:8080/20111018/xxx.do,界面返回结果如下:

servletConfig的应用的更多相关文章

  1. ServletConfig 可以做啥

    1.获得 servlet配置的servletname 2.获得servlet 配置的  getInitParameter("keyname") 3.获得servlet配置的 所有的 ...

  2. JavaWeb---通过ServletConfig获取Servlet的初始化参数

    package com.zyz; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import j ...

  3. ServletConfig对象详解

    在Servlet 的配置文件中,可以用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数之后,web容器在创建servlet实例对 ...

  4. ServletConfig接口默认是哪里实现的?

    问题:Servlet接口默认是哪里实现的? 答:GenericServlet 1.结构 2.ServletConfig.GenericServlet.HttpServlet的关系如下: public ...

  5. JavaWeb学习笔记——开发动态WEB资源(六)ServletConfig和ServletContext

    1.只有在第一次请求服务器产生实例的时候才会调用init()方法,有一种办法能在服务器一启动的时候就加载init()方法. 即服务器启动即加载Servlet,且按数字大小顺序实例化Servlet. 方 ...

  6. ServletConfig与ServletContext

    ServletConfig与ServletContext对象详解 一.ServletConfig对象    在Servlet的配置文件中,可以使用一个或多个<init-param>标签为s ...

  7. ServletConfig对象和它在开发中的应用场

    package cn.itcast; import java.io.IOException; import java.io.PrintWriter; import java.util.Enumerat ...

  8. JavaWeb基础: ServletConfig

    基本概念 ServletConfig用于配置Servlet的参数:在Servlet的配置文件中,可以使用一个或者是多个<init-param> 标签为Servlet配置一些初始化参数.当有 ...

  9. servletconfig和servletContext的区别

    1.servletConfig: 在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数.(配置在某个servlet标签或者整个we ...

  10. JavaWeb学习之Servlet(四)----ServletConfig获取配置信息、ServletContext的应用

    [声明] 欢迎转载,但请保留文章原始出处→_→ 文章来源:http://www.cnblogs.com/smyhvae/p/4140877.html [正文] 一.ServletConfig:代表当前 ...

随机推荐

  1. Oracle profile含义、修改、新增

    profiles文件是口令和资源限制的配置集合,包括CPU的时间.I/O的使用.空闲时间.连接时间.并发会话数量.密码策略等对于资源的使用profile可以做到控制会话级别或语句调用级别.oracle ...

  2. Web应用层协议---HTTP

    处于协议栈顶层的应用层协议定义了运行在不同端系统的应用程序进程如何相互传递报文.定义内容如下: 1.交换的报文类型.请求报文和响应报文. 2.各种报文类型的语法,如报文中的各个字段及这这些字段是如何描 ...

  3. mysql的约束

    SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...

  4. rsync之脑袋疼

    rsync图片参考 d本地模式,cp的感觉 vzrtopg = a - d -l --delete适用于2个目录完全一样的情况 默认avz就可以了 2,远端的shell 解决ssh链接慢的问题 3.d ...

  5. FastJSON使用笔记

    虽然使用FastJSON来生成JSON数据非常简单 最常用的的方法就是JSON.toJSONString()静态方法,这个方法参数可以给一个String,也可以是一个int,也可以给一个Object类 ...

  6. MVC、MVP、MVVM架构模式

    MVC模式 如何设计一个程序的结构,这是一门专门的学问,叫做"架构模式"(architectural pattern),属于编程的方法论. MVC模式就是架构模式的一种,不仅适用于 ...

  7. URL里面的中文参数到底转换成了什么?

    https://www.amazon.cn/s/ref=nb_sb_noss?__mk_zh_CN=%E4%BA%9A%E9%A9%AC%E9%80%8A%E7%BD%91%E7%AB%99& ...

  8. Arduino学习笔记A6(补充) - 在串口读取多个字符串,并且转换为数字数组

    功能如题目. 在串口收到逗号分割的6串数字比如 100,200,45,4,87,99 然后在6个PWM端口3, 5, 6, 9, 10, 11输出对应PWM值 代码注释很详细了,就不再说明了. ARD ...

  9. [iOS]隐藏导航栏把右滑退出操作保留

    项目因为用到上面导航栏样式多变,就隐藏了导航栏自己用View代替了,但手势却不见了,后来发现问题解决.操作如下: 千万不要取消 Shows Navigation Bar 这个选项否则手势会消失 应该是 ...

  10. linux命令详解2-文件管理,查看文件命令

    1. cat命令(tac) ----连接文件,并打印出来(顺序打印)与tac命令类似只不过,tac命令是逆序打印 [语法] cat [OPTION]... [FILE]... [选项] -A:显示所有 ...