Servlet
中的 ServletConfig
javax . servlet . servlet config是作为 servlet API 一部分的接口。对于我们应用程序中的每个 Servlet 类,web 容器将创建一个 ServletConfig 对象,并且 web 容器将把这个对象作为参数传递给我们 Servlet 类对象的公共 void init(Servlet config)方法。servletConfig 上的一些要点是:
- ServletConfig is an object containing some initial parameters or configuration information, which is created by the Servlet container and passed to the Servlet during initialization.
- ServletConfig is specific to servlet, which means that servlet-specific information should be stored in web.xml and this object should be used to retrieve them.
例子
假设,一个人正在建立一个工作门户,并希望与招聘人员和求职者共享不同的电子邮件 id(可能会随着时间的推移而改变)。因此,他决定编写两个 servlets,一个用于处理招聘人员的请求,另一个用于求职者。
在哪里存储电子邮件 id?
将 email-id 作为不同 servlet 的名称-值对放入 web.xml 中,可以使用 getServletConfig()进一步检索。servlet 中的 getInitParameter(“名称”)。
ServletConfig 接口中的方法
ServletConfig 界面
- 公共抽象 Java。朗。字符串 getServletName()
- 菲兰达 javax 先生。servlet(servlet)。servletcontext getservletcontext()
- 公共抽象 Java。朗。字符串 getInitParameter(Java。朗。字符串)
- 公共抽象 Java。乌提尔。枚举<爪哇。朗。字符串> getnitparameternames()
1。公共抽象 Java . lang . string getServletName()
在 web.xml 中配置 servlet 时,我们必须给 Servlet 起一个逻辑名称。假设我们有一个 Servlet 类 TestServlet,我们想在 web.xml 中配置它。
XML
<web-app>
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
</web-app>
在中,我们已经为我们的 TestServlet 类给出了一个逻辑名称。因此,如果我们使用方法 getServletName(),它将返回 Servlet 的逻辑名称,在这种情况下,它将返回“Test”。
2。公共抽象 javax . servlet . servletcontext getServletContext()
这个方法将简单地返回 ServletContext 对象。Web 容器为每个 web 应用程序创建一个 ServletContext 对象。
3。公共抽象 Java . lang . string getInitParameter(Java . lang . string)
我们可以将 init 参数存储为 web.xml 的一部分
XML
<web-app>
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>TestServlet</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>xyz</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>welcome@123</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-apptern>/test</url-apptern>
</servlet-mapping>
</web-app>
使用 init 参数的好处是我们不需要在源代码中硬编码值,如果我们不是在源代码中硬编码值,要改变值我们不需要接触源代码。我们只需要更改 web.xml 中的值并重新部署应用程序。这些初始化参数特定于您为其配置的 Servlet。通过使用 getInitParameter(),我们可以访问 Servlet 中 init 参数的值。
爪哇
import javax.servlet.Servlet;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.ServletConfig;
public class TestServlet implements Servlet{
private ServletConfig config;
// web container will call this
// method by passing ServletConfig
public void init(ServletConfig config){
this.config=config;
}
public void service(ServletRequest request, ServletResponse response){
// pass <param-name> to get <param-value>
String username=config.getInitParameter("username"); // xyz
String password=config.getInitParameter("password"); // welcome@123
System.out.println(username);
System.out.println(password);
}
public void destroy(){
}
public ServletConfig getServletConfig(){
return config;
}
public String getServletInfo(){
return this.getClass().getName();
}
}
4。公共抽象 Java . util . enumerationgetInitParameterNames()
此方法将返回包含所有初始化参数名称的枚举。
版权属于:月萌API www.moonapi.com,转载请注明出处