Servlet上下文范围

Servlet上下文范围:

ServletContext对象用于拥有属于同一web应用程序的一组servlet的公共数据。ServletContext对象的数据可以通过特定web.xml的servlet的所有方法进行访问

方法:

以下方法用于将servlet的本地数据添加到servletContext对象,从而删除servletContext对象的现有数据。

public void setAttribute (String, Object); - 1
public Object getAttribute (String); - 2
public void removeAttribute (String); - 3 
public Enumeration getAttributeNames (); - 4

加载启动:

加载启动基本上用于给予正在访问特定Web应用程序的所有客户端的相同响应。
默认情况下,请求后,ServletContext对象将由Servlet容器创建。
由于这一响应需要更多的时间,并且进一步的响应将花费最短的时间。
因此,为了避免响应时间的差异,我们使用载荷启动的概念。
<load-on-startup>标记将用作<servlet>标记的一部分,因为它特定于servlet。

如果优先级值对于一组servlets是肯定的,那么将基于优先级的升序创建其对象。
如果优先级值为零,则将在末尾创建Servlet对象。
如果servlet的优先级值为否,则不会创建一个servlet对象即,忽略了。

当我们使用Load-On启动时作为Web.xml的一部分,容器将在第一个请求之前创建一个servlet的对象。

web.xml:

<web-app>
    <servlet>
        <servlet-name>abc</servlet-name>
        <servlet-class>DdServ</servlet-class>
        <load-on-startup>10</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>abc</servlet-name>
        <url-pattern>/ddurl</url-pattern>
    </servlet-mapping>
</web-app>

ddserv.java:

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class DdServ extends HttpServlet {
    public DdServ() {
        System.out.println("SERVLET OBJECT IS CREATED");
    }
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        res.setContentType("text/html");
        PrintWriter pw = res.getWriter();
        System.out.println("I AM FROM doGet ()");
        pw.println("<h3>I AM FROM doGet ()</h3>");
    }
};
日期:2020-04-11 23:04:23 来源:oir作者:oir