这里主要是ServletContext的一个特性:ServletContext是一个公共的空间,可以被所有的客户访问。由此可见ServletContext比cookie和session的作用范围要大【session,cookie,和ServletContext是Servlet中比较重要的几个对象】

用ServletContext做一个简单的聊天室的思路是:把客户欧阳凤所输入的内容,保存在ServletContext中,在客户泗溪中用ServletContext的方法,获取客户欧阳凤所输入的内容。同时,在客户欧阳凤的界面得到客户泗溪所输入的内容。

两个客户的运行时的界面如图所示:

//ClientA的代码如下:

 package com.qls2;

 import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ClientA extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String clientB = request.getParameter("sixi");

String clientB = request.getParameter("sixi");
if (clientB!=null) {
byte[] b = clientB.getBytes("iso-8859-1");
clientB = new String(b, "utf-8");
}

out.println(clientB);

         out.println("<h1>欧阳凤</h1>");
out.println("<form action='/servletContext/CreateServletContext2' method='post'>");
out.println("请输入:<input type='text' name='ouyangfeng'/>");
out.println("<input type='submit' value='发送'/>");
out.println("</form>");
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
this.doGet(request, response);
} }

//CreateServletContext2 的代码如下:

 package com.qls2;
/**
* 用ServletContext制作一个聊天室。
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class CreateServletContext2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
//获取ClientA输入的内容:
String clientA = request.getParameter("ouyangfeng"); this.getServletConfig().getServletContext().setAttribute("secreteriat", clientA);
request.getRequestDispatcher("/ReadServletContext2").forward(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
this.doGet(request, response);
} }

//ReadServletContext2的代码如下:

 package com.qls2;

 import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLDecoder; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ReadServletContext2 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String str=(String) this.getServletContext().getAttribute("secreteriat"); out.println(str);
out.println("<h1>泗溪</h1>");
out.println("<form action='/servletContext/ClientA' method='post'>");
out.println("请输入:<input type='text' name='sixi'/>");
out.println("<input type='submit' value='发送'/>");
out.println("</form>"); } public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
this.doGet(request, response);
} }

最新文章

  1. URL类
  2. UIView画虚线边框
  3. 20160817_Redis配置操作
  4. heapsort
  5. Codeforces 741A:Arpa&#39;s loud Owf and Mehrdad&#39;s evil plan(LCM+思维)
  6. UIView下使用Animation控制动画
  7. 字符串(多串后缀自动机):HDU 4436 str2int
  8. windows程序设计读书笔记1——创建窗口
  9. Vmware虚拟机网络模式及虚拟机与物理机通信方法
  10. 彻底搞明白find命令的-mtime参数的含义【转载】
  11. PAT (Advanced Level) 1093. Count PAT&#39;s (25)
  12. go web 第三天 学习笔记 --mysql
  13. Java关键字(一) 修饰符private、protected、public和default的作用域
  14. docker生态系统
  15. 『简单dp测试题解』
  16. css文字与排版
  17. excel支持正则表达式提取字符函数(支持RegExp捕获分组)
  18. jackson 用法总结
  19. YAML基本语法
  20. Oracle数据库里面查询字符串类型的字段不为空和为空的SQL语句:

热门文章

  1. pycharm快捷键一览
  2. selenium破解极限
  3. python__系统 : socket_TCP相关
  4. Flask初学者:蓝图Blueprint
  5. python向多个邮箱发邮件--注意接收是垃圾邮件
  6. HTML中body相关标签-02
  7. chrome 切换到其他网络后重新加载网
  8. PowerShell技巧:使用XPath语法查询XML文件
  9. 剑指Offer - 九度1524 - 复杂链表的复制
  10. USACO Section1.2 Dual Palindromes 解题报告