- 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("<a href='servlet2'>visit</a>");
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
<web-app>
<servlet>
<servlet-name>s1</servlet-name>
<servlet-class>DemoServlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>s2</servlet-name>
<servlet-class>DemoServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>s2</servlet-name>
<url-pattern>/servlet2</url-pattern>
</servlet-mapping>
</web-app>
ServletConfig和ServletContext之间的区别
servletconfig对象引用单个servlet, 而servletcontext对象引用整个Web应用程序。 |