1.ServletConfig
作用:
当servlet执行初始化函数init()之后,可以利用ServletConfig获取存储在web.xml里的参数,这样就可以不用在servlet中硬编码一些参数,例如作者姓名,当在servlet中使用作者姓名这个参数的时候直接调用web.xml,如果需要修改参数值,只需修改web.xml,不用重新编译servlet。
用法:
- 在web.xml中指定参数name和参数value
login com.ycty.login_control.Login author feipeng8848 ServletConfig是配置servlet,所以要放置到servlet的标签中。
- 在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中
author This is context-param,author is feipeng8848
这里需要注意一点,ServletConfig是针对servlet的配置,需要写进servlet标签内部,而ServletContext是针对整个web应用,所以他的上层标签是web-app。
(2)在jsp中
out.println(getServletContext().getParameter(author));
ServletContext常用于配置的URL、password、username等
说明:
1.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"));
2.使用ServletContext存在线程安全问题。