Servlet的三大域对象
1 Servlet的三大域对象
一个在Servlet的属性,可以在以下三个范围对象(称为域对象)内获取或删除:
- 请求范围(request)
- 会话范围(session)
- 应用范围(application)
在开发中,我们可以给一个Servlet设置属性,将信息传递到另一个Servlet。就像将对象从一个类传递到另一个类一样,这样我们可以一次又一次地重用同一对象。
2 域对象操作常用方法
三个域对象都有相同的操作方法,如下:
- public void setAttribute(String name,Object object):在应用程序范围内设置给定的对象。
- public Object getAttribute(String name):返回指定名称的属性。
- public Enumeration getInitParameterNames():以字符串对象的枚举形式返回上下文的初始化参数的名称。
- public void removeAttribute(String name):从删除具有给定名称的属性。
3 给ServletContext设置和获取属性值
3.1 编写DemoServlet1
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* 一点教程网 - http://www.yiidian.com
*/
public class DemoServlet1 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
PrintWriter out = null;
try{
res.setContentType("text/html;charset=utf-8");
out=res.getWriter();
ServletContext context=getServletContext();
context.setAttribute("name","一点教程网");
out.println("这是DemoServlet1");
out.println("<a href='servlet2'>点击跳转</a>");
out.close();
}catch(Exception e){
out.println(e);
}
}
}
3.2 编写DemoServlet2
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 一点教程网 - http://www.yiidian.com
*/
public class DemoServlet2 extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
PrintWriter out = null;
try{
res.setContentType("text/html;charset=utf-8");
out=res.getWriter();
ServletContext context=getServletContext();
String n=(String)context.getAttribute("name");
out.println("欢迎访问:"+n);
out.close();
}catch(Exception e){
out.println(e);
}
}
}
3.3 配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>DemoServlet1</servlet-name>
<servlet-class>DemoServlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DemoServlet1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>DemoServlet2</servlet-name>
<servlet-class>DemoServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>DemoServlet2</servlet-name>
<url-pattern>/servlet2</url-pattern>
</servlet-mapping>
</web-app>
3.4 运行测试
先访问DemoServlet1,http://localhost:8080/servlet1,效果如下:
点击链接后,跳转到DemoServlet2,效果如下:
热门文章
优秀文章