ServletConfig与ServletContext

    xiaoxiao2026-01-26  5

    1.ServletConfig

    作用:

    当servlet执行初始化函数init()之后,可以利用ServletConfig获取存储在web.xml里的参数,这样就可以不用在servlet中硬编码一些参数,例如作者姓名,当在servlet中使用作者姓名这个参数的时候直接调用web.xml,如果需要修改参数值,只需修改web.xml,不用重新编译servlet。

    用法:

    在web.xml中 <servlet> <servlet-name>login</servlet-name> <servlet-class>com.ycty.login_control.Login</servlet-class> <init-param> <param-name>author</param-name> <param-value>feipeng8848</param-value> </init-param> </servlet>

    ServletConfig是配置servlet,所以要放置到servlet的标签中。 2. 在servlet中

    out.println( getServletConfig().getIntParameter("author") );

    2.ServletContext

    ServletConfig的确很方便,但是,如果想在jsp中也使用servlet的配置参数的话,是很麻烦的,首先在servlet中String a_author = getServletConfig().getIntParameter(“author”)获得参数,然后利用requst.setAttribute(“author”,a_author),把参数传递给jsp。

    能不能直接在jsp中调用配置参数呢?

    能,用ServletContext。

    (1).在web.xml中

    <web-app> <context-param> <param-name>author</param-name> <param-value>This is context-param,author is feipeng8848</param-value> </context-param> </web-app>

    这里需要注意一点,ServletConfig是针对servlet的配置,需要写进servlet标签内部,而ServletContext是针对整个web应用,所以他的上层标签是web-app。 (2)在jsp中

    out.println(getServletContext().getParameter(author));

    ServletContext常用于配置数据库的URL、password、username等

    说明:

    getServletContext()和getServletConfig()是在 GenericServlet类中实现了的方法,由于httpServlet继承了该类,所以可以直接使用getServletContext()和getServletConfig()。

    getServletConfig()的另外一种写法:

    ServletConfig config = this.getServletConfig(); out.println( config.getParameter("author"));

    getServletContext()的另外一种写法:

    ServletContext context = this.getServletContext(); out.println( context.getParameter("author")); 相关资源:有关ServletConfig与ServletContext的访问
    最新回复(0)