当前位置: 首页 > news >正文

Hello2 Analysis

Analysis:

  Hello2 应用程序是一个 Web 模块,它使用 Java Servlet 技术来显示问候语和响应,使用的是 Java Servlet 技术。

  该应用程序源代码在 tutorial-examples\web\servlet\hello2\src\main\java\javaeetutorial\hello2 下,分别为:GreetingServlet.java和ResponseServlet.java。

  此 servlet 重写该 doGet 方法,实现 GET HTTP 方法。

 1 @WebServlet("/greeting") //将 URL 指定为/greeting
 2 public class GreetingServlet extends HttpServlet {
 3 @Override
 4 public void doGet(HttpServletRequest request, //重写 httpservlet 的 doget 方法,实现覆盖并用来处理 get 请求
 5 HttpServletResponse response)
 6 throws ServletException, IOException {
 7 response.setContentType("text/html"); // 设置响应类型为 HTML
 8 response.setBufferSize(8192); 
 9 try (PrintWriter out = response.getWriter()) {
10 out.println("<html lang=\"en\">" //设置 HTML 语言
11 + "<head><title>Servlet Hello</title></head>"); // 网页标题
12 
13 // then write the data of the response
14 out.println("<body bgcolor=\"#ffffff\">"
15 + "<img src=\"resources/images/duke.waving.gif\" "
16 + "alt=\"Duke waving his hand\">"
17 + "<form method=\"get\">"
18 + "<h2>Hello, my name is Duke. What's yours?</h2>"
19 + "<input title=\"My name is: \" type=\"text\" "
20 + "name=\"username\" size=\"25\"/>"
21 + "<p></p>"
22 + "<input type=\"submit\" value=\"Submit\"/>"
23 + "<input type=\"reset\" value=\"Reset\"/>"
24 + "</form>"); // HTML 源代码,以显示页面
25 
26 String username = request.getParameter("username");
27 //获取传来的参数值。
28 //通过容器传递给当前 httpservlet
29 
30 if (username != null && username.length() > 0) { //判断用户输入的值是否有效
31 RequestDispatcher dispatcher =
32 getServletContext().getRequestDispatcher("/response"); //获取url为/response的servlet作为一个dispatcher资源
33 
34 if (dispatcher != null) {
35 dispatcher.include(request, response);
36 }
37 }
38 out.println("</body></html>");
39 }
40 }
41 //dispatcher 中通过 request 获得 username,在response中添加了hello这几句话,dispatcher 就是开始获得的 /response 对应的httpservlet。
42 编辑器打开 ResponseServlet.java :
43 @WebServlet("/response") // 将 URL 配置为 /response
44 public class ResponseServlet extends HttpServlet {
45 @Override
46 public void doGet(HttpServletRequest request,
47 HttpServletResponse response)
48 throws ServletException, IOException {
49 try (PrintWriter out = response.getWriter()) { //获取输出对象,用于向页面写数据。返回一个 PrintWriter 对象
50 String username = request.getParameter("username"); //获取用户的字符串或字符
51 if (username != null && username.length() > 0) { //判断输入值是否有效,有效则执行
52 out.println("<h2>Hello, " + username + "!</h2>"); //在页面输出一句话。
53 }
54 }
55 }
56 @Override
57 public String getServletInfo() {
58 return "The Response servlet says hello.";
59 }
60 }

 

在本地部署servlet时,使用以下URL就可以访问它:

HTTP://localhost:8080/hello2/greeting

转载于:https://www.cnblogs.com/BleachCurtain/p/10760539.html

相关文章:

  • exe4j 使用记录(二):jar打包exe
  • ModBus-RTU详解
  • 冲刺进度条-2
  • Solr中的group与facet的区别
  • hashlib 模块:加密
  • 团队博客
  • spring boot热部署
  • js数字格式化为千分位
  • windows 隐藏账户
  • Insert 导致死锁的两种情况
  • 背包三连(01背包 + 多重背包 + 完全背包)
  • 「POI2011 R2 Day2」Tree Rotations【线段树合并】
  • 获取未来第几天的日期
  • Kotlin 数据类与密封类
  • 失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案
  • 【翻译】babel对TC39装饰器草案的实现
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Android开源项目规范总结
  • CSS盒模型深入
  • Druid 在有赞的实践
  • es6(二):字符串的扩展
  • HTTP 简介
  • Java精华积累:初学者都应该搞懂的问题
  • java正则表式的使用
  • Redis在Web项目中的应用与实践
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Sublime text 3 3103 注册码
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • XForms - 更强大的Form
  • 安卓应用性能调试和优化经验分享
  • 搭建gitbook 和 访问权限认证
  • 大数据与云计算学习:数据分析(二)
  • 分布式任务队列Celery
  • 关于springcloud Gateway中的限流
  • 基于Android乐音识别(2)
  • 坑!为什么View.startAnimation不起作用?
  • 面试总结JavaScript篇
  • 前端面试总结(at, md)
  • 区块链技术特点之去中心化特性
  • 协程
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 正则学习笔记
  • 最简单的无缝轮播
  • 《码出高效》学习笔记与书中错误记录
  • ​linux启动进程的方式
  • ###C语言程序设计-----C语言学习(6)#
  • #QT项目实战(天气预报)
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (9)目标检测_SSD的原理
  • (NSDate) 时间 (time )比较
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (二)PySpark3:SparkSQL编程
  • (过滤器)Filter和(监听器)listener