2021-04-21 08:31  阅读(73)
文章分类:Servlet 简单教程 文章标签:Servlet
©  原文作者:一点教程 原文地址:http://www.yiidian.com/servlet/

1 Servlet的三大域对象

一个在Servlet的属性,可以在以下三个范围对象(称为域对象)内获取或删除:

  • 请求范围(request)
  • 会话范围(session)
  • 应用范围(application)

在开发中,我们可以给一个Servlet设置属性,将信息传递到另一个Servlet。就像将对象从一个类传递到另一个类一样,这样我们可以一次又一次地重用同一对象。

2 域对象操作常用方法

三个域对象都有相同的操作方法,如下:

  1. public void setAttribute(String name,Object object):在应用程序范围内设置给定的对象。
  2. public Object getAttribute(String name):返回指定名称的属性。
  3. public Enumeration getInitParameterNames():以字符串对象的枚举形式返回上下文的初始化参数的名称。
  4. 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,效果如下:

2021042108310_1.png

点击链接后,跳转到DemoServlet2,效果如下:

202104210838_2.png

点赞(0)
版权归原创作者所有,任何形式转载请联系作者; Java 技术驿站 >> Servlet的三大域对象
上一篇
ServletContext的使用
下一篇
什么是过滤器