ServletConfig使用说明

来源:互联网 发布:混沌战域翅膀进阶数据 编辑:程序博客网 时间:2024/05/17 02:41

在Servlet的配置文件中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,ServletConfig对象传递给servlet。进而,程序员通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

Servlet:

public class ConfigServlet extends HttpServlet {    ServletConfig config;    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {        //获取指定的初始化参数        String donwloadPath  = config.getInitParameter("donwloadPath");        System.out.println("donwloadPath="+donwloadPath);        response.getOutputStream().write(donwloadPath.getBytes());        //循环获取所有初始化参数        Enumeration<String> list = config.getInitParameterNames();        while(list.hasMoreElements()){            String name = list.nextElement();            String value = config.getInitParameter(name);            System.out.println(name+"="+value);            String str = name+"="+value;            response.getOutputStream().write(str.getBytes());        }    }    public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {        doGet(request,response);    }    public void init(ServletConfig config) {        this.config = config;    }}

web.xml:

    <!-- 测试servletConfig的使用 这里的init-param要放在servlet中-->    <servlet>        <servlet-name>ConfigServlet</servlet-name>        <servlet-class>com.learn.servletconfig.ConfigServlet</servlet-class>        <init-param>            <param-name>donwloadPath</param-name>            <param-value>/user/downloadPath</param-value>        </init-param>        <init-param>            <param-name>name</param-name>            <param-value>root</param-value>        </init-param>        <init-param>            <param-name>password</param-name>            <param-value>111111111</param-value>        </init-param>           </servlet>    <servlet-mapping>        <servlet-name>ConfigServlet</servlet-name>        <url-pattern>/config.action</url-pattern>    </servlet-mapping>

运行结果:

donwloadPath=/user/downloadPathpassword=111111111donwloadPath=/user/downloadPathname=root

ConfigServlet对象中有一个ServletConfig对象,其实这是不必要的。因为ConfigServlet继承了HttpServlet,HttpServlet又继承了GenericServlet 。GenericServlet 已经在内部维护了一个ServletConfig对象

GenericServlet源码如下:

public abstract class GenericServlet     implements Servlet, ServletConfig, java.io.Serializable{    private static final String LSTRING_FILE = "javax.servlet.LocalStrings";    private static ResourceBundle lStrings =        ResourceBundle.getBundle(LSTRING_FILE);    private transient ServletConfig config;    public GenericServlet() { }}

直接使用this.getServletConfig()方法:

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {        //获取指定的初始化参数                String donwloadPath  = this.getServletConfig().getInitParameter("donwloadPath");        System.out.println("donwloadPath="+donwloadPath);        response.getOutputStream().write(donwloadPath.getBytes());        //循环获取所有初始化参数        Enumeration<String> list = this.getServletConfig().getInitParameterNames();        while(list.hasMoreElements()){            String name = list.nextElement();            String value = this.getServletConfig().getInitParameter(name);            System.out.println(name+"="+value);            String str = name+"="+value;            response.getOutputStream().write(str.getBytes());        }    }
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 文件大于100发不了微信怎么办 微信的传送文件大于100怎么办 微信钱包话费充值错误怎么办 微信转账到不了账也退不回是怎么办 求人办事微信发红包对方不收怎么办 微信上交了订金对方不退怎么办 交通事故对方伤员堵大门搂腿怎么办 电脑开机桌面文件都没了怎么办 qq飞车手游队长换了微信群怎么办 qq飞车手游登录授权失败怎么办 安装时提示安装包发现错误怎么办 苹果6p升级系统验证失败怎么办 w10开不了机无限重启怎么办 微信朋友圈里的表情图打不开怎么办 金立手机微信启动录音被拒绝怎么办 微信帐号解封后漂流瓶不能用怎么办 微信怎么在电脑上登不上去怎么办 玩旧版60级魔兽经常花屏怎么办? 我的世界手机版物品栏不见了怎么办 苹果手机掉进水里出现花屏该怎么办 球球大作战还没进去停止运行怎么办 ps3 e3硬破芯片坏了怎么办 电话打开后页面上没有东西怎么办 WPS在电脑安装后卸载不了怎么办 ps总要以管理员的身份打开怎么办 3d关的慢保存慢怎么办 无法与服务器建立可靠的连接怎么办 被抵押的房子开发商不解押怎么办 手机系统语言是英文没有中文怎么办 w7主机网插口灯不亮了没网怎么办 电脑用了5年变得很卡了怎么办 苹果6s系统占12g怎么办 百度网盘下载的压缩包打不开怎么办 三星手机微信安装包解析错误怎么办 下身流出来的东西有异味很重怎么办 鞋脚底总有一股酸臭的味道怎么办 腋窝总是有股酸臭的味道应该怎么办 房间里总是有灰尘的味道怎么办 香水喷多了衣服味道太呛怎么办 香水喷在衣服上变黄了怎么办 84喷在白衣服上变红怎么办