Servlet--ServletContext(二)共享信息

举报
brucexiaogui 发表于 2021/12/30 01:01:21 2021/12/30
【摘要】 Servlet--ServletContext(二)共享信息 一、ServletContext作用 1、获取项目运行的真实路径 2、共享信息----ServletContext是项目的一个共享容器,当tomcat启动时,此类就被创建成功,当项目关闭时才会结束。在该类中存放的信息可以被整个项目获取,...
Servlet--ServletContext(二)共享信息

一、ServletContext作用
1、获取项目运行的真实路径
2、共享信息----ServletContext是项目的一个共享容器,当tomcat启动时,此类就被创建成功,当项目关闭时才会结束。在该类中存放的信息可以被整个项目获取,达到信息共享。同时也被用来做配置文件。
下面用一个例子描述Servlet实现共享信息的过程

二、ServletContext 共享信息
1、创建两个servlet类,实现ServletContext对象的存储信息和获取信息。
第一个servlet onservlet

   
  1. package test07_3context;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletContext;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. public class OneServlet extends HttpServlet {
  10. public void doPost(HttpServletRequest request, HttpServletResponse response)
  11. throws ServletException, IOException {
  12. response.setContentType("text/html;charset=Utf-8");
  13. PrintWriter out = response.getWriter();
  14. //接受用户名
  15. String name = request.getParameter("name");
  16. //创建context对象
  17. ServletContext one = getServletContext();
  18. //ServletContext对象添加name名称
  19. if(name!=null&& !name.trim().equals("")){
  20. one.setAttribute("var", name);
  21. }
  22. //获取添加的名称
  23. String on = (String) one.getAttribute("var");
  24. out.println("获取ServletContext存储的名字:"+on);
  25. }
  26. }

第二个Servlet  towServlet

   
  1. package test07_3context;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import javax.servlet.ServletContext;
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. public class TowServlet extends HttpServlet {
  10. public void doGet(HttpServletRequest request, HttpServletResponse response)
  11. throws ServletException, IOException {
  12. response.setContentType("text/html;charset=UTF-8");
  13. PrintWriter out = response.getWriter();
  14. //在TowServlet中获取OneServlet的值
  15. ServletContext tow = getServletContext();
  16. //获取Oneservlet的setAttribute存储的string名称
  17. String to = (String)tow.getAttribute("var");
  18. out.print("在Tow中显示one的名称是:"+to);
  19. }
  20. }

2、web.xml 配置文件

   
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="3.0"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  6. <servlet>
  7. <description>This is the description of my J2EE component</description>
  8. <display-name>This is the display name of my J2EE component</display-name>
  9. <servlet-name>OneServlet</servlet-name>
  10. <servlet-class>test07_3context.OneServlet</servlet-class>
  11. </servlet>
  12. <servlet>
  13. <description>This is the description of my J2EE component</description>
  14. <display-name>This is the display name of my J2EE component</display-name>
  15. <servlet-name>TowServlet</servlet-name>
  16. <servlet-class>test07_3context.TowServlet</servlet-class>
  17. </servlet>
  18. <servlet-mapping>
  19. <servlet-name>OneServlet</servlet-name>
  20. <url-pattern>/OneServlet</url-pattern>
  21. </servlet-mapping>
  22. <servlet-mapping>
  23. <servlet-name>TowServlet</servlet-name>
  24. <url-pattern>/TowServlet</url-pattern>
  25. </servlet-mapping>
  26. </web-app>

3、写一个发送post请求的前端页面

   
  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>My JSP 'index.jsp' starting page</title>
  11. <meta http-equiv="pragma" content="no-cache">
  12. <meta http-equiv="cache-control" content="no-cache">
  13. <meta http-equiv="expires" content="0">
  14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  15. <meta http-equiv="description" content="This is my page">
  16. <!--
  17. <link rel="stylesheet" type="text/css" href="styles.css">
  18. -->
  19. </head>
  20. <body>
  21. This is my JSP page. <br>
  22. <form action="OneServlet" method="post">
  23. <input type="text" name="name" value=""/><br/>
  24. <input type="submit" value="提交"/>
  25. </form>
  26. </body>
  27. </html>

4、测试
1、OneServlet主要是发送信息,TowServlet主要是接受OneServlet发送的信息。当One发送的信息,在Tow中可以看到说明信息是可以共享的。
2、打开浏览器,输入测试地址:http://127.0.0.1:8080/test07_3/
3、在首页中输入信息,点击提交
5、在打开另一个浏览器,输入测试地址: http://127.0.0.1:8080/test07_3/TowServlet
4、可以看到第一个浏览器提交的信息,当第一个浏览器不断的提交信息,第二个浏览器不断的刷新就可以接受到第一个浏览器发送的信息。


文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/76047333

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。