【Servelt 数据共享】

@[TOC]Httpservlet


数据存储于数据共享

Servlt 可通过ServltContext 对象,上下文对象,存储数据,


提示:以下是本篇文章正文内容,下面案例可供参考

一、编写一个类继承

要让一个普通的java类变成Servlet,最简单的方法就是继承HttpServlet,

二、使用步骤

1.编写代码

代码如下(示例):

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;

/**
 * @Author:
 * @Date:2021/16/19/15:16
 * @Description:  Servlet 基本功能,
 * 1.通过response 直接先页面输入流或html代码
 * 2.数据存储和数据共享,在HelloServlet 中存储数据,在另一个servlet中获取数据,通过上下文对象存储
 * 3.使用this 调用父类httpservlet的方法
 */
public class HelloServlet  extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    //通过ServletContext 存储数据
        ServletContext context =this.getServletContext();
        context.setAttribute("username","输出中文名字");
         //通过response 对象存储数据,返回输出html代码
         /*
        resp.setCharacterEncoding("UTF-8");
        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>MMMMMHello World HELLLLLLLLLL!</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>hhhhhHHHHHRRRRRHello Worldsddfssdfsdf! 中午自</h1>");
        out.println("</body>");
        out.println("</html>");
        */
    }
}

2.读入数据

代码如下(示例):

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;

/**
 * @Author:
 * @Date:2021/59/20/9:59
 * @Description:获取存储在ServletContext上下文中的数据
 */
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
         //获取存储在ServletContext上下文中的数据
        ServletContext context = this.getServletContext( );
        String username = String.valueOf(context.getAttribute("username"));
        System.err.println(username);
    }
}

需要注意的是一定要先触发HelloServlet 的doGet()方法,保证username set后,在执行MyServelt中的do Get()方法,才能读取出放入ServletContext中的值,否则值输出为null

3.在web.xml中配置Servlet

<?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_4_0.xsd"
         version="4.0"
         metadata-complete="true">

 <servlet>
   <servlet-name>helloword</servlet-name>
   <servlet-class>org.lsh.servlet.HelloServlet</servlet-class>
 </servlet>
  <servlet-mapping>
    <servlet-name>helloword</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>
    
    
    <servlet>
        <servlet-name>Myservlet</servlet-name>
        <servlet-class>org.lsh.servlet.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Myservlet</servlet-name>
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>

</web-app>


总结

重点:一定要新进行set 然后才能正确的 get 到值

  1. 创建两个普通的java 类,都继承HttpServlet,
  2. 一个servlet 中存放数据,在另外一个Servlet中获取数据,都通过ServltContext 对象,获取或设置,可以把ServletContext 当成Servelt的容器
  3. 在Web.xml 文件 中配置Servlet,
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值