【JavaWeb】Servlet属性设置

16 篇文章 0 订阅

Servlet中的属性是可以从以下范围之一设置,获取或删除的对象:

  • 请求范围
  • 会话范围
  • 应用范围

Servlet程序员可以使用属性将信息从一个servlet传递给另一个servlet。它就像将对象从一个类传递给另一个类一样,以便我们可以一次又一次地重用同一个对象。

ServletRequest,HttpSession和ServletContext接口的属性特定方法

Servlet中有以下4种属性方法,它们具体如下:

序号方法描述
1public void setAttribute(String name,Object object)在应用程序范围内设置给定的对象。
2public Object getAttribute(String name)返回指定名称的属性。
3public Enumeration getInitParameterNames()返回上下文的初始化参数的名称,转为String对象的枚举。
4public void removeAttribute(String name)从servlet上下文中删除具有给定名称的属性。

ServletConfig和ServletContext的区别

servletconfig对象引用单个servlet,而servletcontext对象引用整个Web应用程序。

ServletContext的示例设置和获取属性

ServletAttr.java

public class ServletAttr extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response){
        try {
            // 设置服务器端内容类型
            response.setContentType("text/html");
            // 设置服务器端编码方式
            response.setCharacterEncoding("utf-8");
            // 获取服务器端输出对象
            PrintWriter out = response.getWriter();

            // 获取ServletContext对象
            ServletContext context = getServletContext();
            // 设置属性
            context.setAttribute("school","WTU");

            out.println("Welcome to first servlet");
            out.println("在第二个Servlet<a href='servletAttr2'>查看属性值</a>");
            out.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

ServletAttr2.java

public class ServletAttr2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Override
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 设置服务器端内容类型和编码方式
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");
        // 获取服务器端的输出对象
        PrintWriter out = response.getWriter();
        // 获取ServletContext对象
        ServletContext context = getServletContext();

        String name = (String) context.getAttribute("school");

        out.println("Welcome to "+name);
        out.close();
    }
}

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID" version="3.1">
    <display-name>AttributeServlet</display-name>
    <welcome-file-list>
    </welcome-file-list>
    <servlet>
        <servlet-name>AttributeServlet</servlet-name>
        <servlet-class>ServletAttr</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AttributeServlet</servlet-name>
        <url-pattern>/servletAttr</url-pattern>
    </servlet-mapping>
    <servlet>
        <servlet-name>AttributeServlet2</servlet-name>
        <servlet-class>ServletAttr2</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AttributeServlet2</servlet-name>
        <url-pattern>/servletAttr2</url-pattern>
    </servlet-mapping>
</web-app>
~~


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮·建哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值