Servlet中的属性
属性特定的方法
设置和获取属性的ServletContext示例
ServletConfig和ServletContext之间的区别
Servlet中的属性是可以从以下范围之一设置, 获取或删除的对象:
请求范围
会话范围
适用范围
Servlet程序员可以使用属性将信息从一个Servlet传递到另一个。就像将对象从一个类传递到另一个类一样, 这样我们可以一次又一次地重用同一对象。
ServletRequest, HttpSession和ServletContext接口的特定于属性的方法
有以下4种特定于属性的方法。它们如下:public void setAttribute(String name, Object object):在应用程序范围内设置给定的对象。 public Object getAttribute(String name):返回指定名称的属性。 public Enumeration getInitParameterNames():将上下文的初始化参数的名称作为String对象的Enumeration返回。 public void removeAttribute(String name):从Servlet上下文中删除具有给定名称的属性。
设置和获取属性的ServletContext示例
在此示例中, 我们在应用程序范围内设置属性, 并从另一个servlet获取该值。
DemoServlet1.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DemoServlet1 extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
{
try{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
ServletContext context=getServletContext();
context.setAttribute("company", "IBM");
out.println("Welcome to first servlet");
out.println("visit");
out.close();
}catch(Exception e){out.println(e);}
}}
DemoServlet2.java
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DemoServlet2 extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
{
try{
res.setContentType("text/html");
PrintWriter out=res.getWriter();
ServletContext context=getServletContext();
String n=(String)context.getAttribute("company");
out.println("Welcome to "+n);
out.close();
}catch(Exception e){out.println(e);}
}}
web.xml
s1
DemoServlet1
s1
/servlet1
s2
DemoServlet2
s2
/servlet2
ServletConfig和ServletContext之间的区别
servletconfig对象引用单个servlet, 而servletcontext对象引用整个Web应用程序。