Hello2实例的分析
首先:
java EE 上的hello2项目是一个部署在glass fish上的开发源码的java web项目,在终端通过命令行使用maven进行打包成.war文件,最后部署到相关的glass fish服务器上。
Java EE 的hello2 不同于hello1 的不同之处在于,前者可以直接通过hello1项目名进行访问文件,后者需要通过访问编写的greeting的web文件才能够访问到hello2文件。
其中的原因在于如下:
1:在hello2的项目中,采用的是Java servlet 技术来采取对项目的整体框架的搭建。编写另一个greeting的java文件,实现了一个greeting的java类来覆盖url的doGet方法,
这个Java类重写了关于HTTP的get 方法,因此通过访问相关的url 即可以访问到编写的Java servlet 文件。主要的实例如下:

@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException { response.setContentType("text/html");
response.setBufferSize(8192);

这个重写的doGet方法传入了一个request 和 response参数,对请求得到的响应进行处理,返回相关的编写的html类型的java web文件和并且设定最大的字节数为8192字节。
http://host:port/context-root[/url-pattern
@WebServlet("/greeting")
public class GreetingServlet extends HttpServlet {
...}
通过分析可知,这个Greeting继承了HttpServlet包,从而实现关于http的servlet方法,完成了url到web组件的映射。
|
1
2
3
4
5
6
7
|
if (username != null && username.length()> 0) { RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/response"); if (dispatcher != null) { dispatcher.include(request, response); } |
编写的实例类实现了一个关于用户名和用户名长度的判别方法,对用户输入的信息进行判别,并通过responseServlet进行处理,相关的实例如下:

@WebServlet("/response")
public class ResponseServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
try (PrintWriter out = response.getWriter()) {
// then write the data of the response
String username = request.getParameter("username");
if (username != null && username.length()> 0) {
out.println("<h2>Hello, " + username + "!</h2>");
}
}
}

当用户输入信息时,后端对输入的信息做出响应,呈现出java web的servlet HTML组件。
总结:
Servlet 技术首先编写一个java 类实现一个servlet接口,其次将开发好的Java web类部署到web 服务其中,即glass fish服务器中,即可以实现javaweb简单部署。
Servlet程序是由服务器调用,当服务器收到客户端的http请求时:
1: 首先判断是否是第一次访问Servlet程序,如果是则创建Servlet实例,调用实例对象的init()方法。
2 : 创建一个用于封装HTTP请求消息的HttpServletReqset对象和一个代表HTTP响应消息的HttpServletResponse对象。
3 : 最后调用doGet()方法将请求参数和响应参数传递进去。
通过以上的步骤,客户端通过请求上下文的URL即 ”http://host:port/context-root[/url-pattern]“ 能够访问到部署在glass fish服务器上的Java Servlet项目 即hello2。
Hello2实例的分析的更多相关文章
- php数组去重实例及分析
php数组去重实例及分析. 一维数组的重复项: 使用array_unique函数即可,使用实例 <?php $aa=array("apple","banan ...
- 通过实例来分析I2C基本通信协议
本文旨在用最通俗易懂的方式.让大家明确I2C通信的过程到底是怎么回事. I2C起源于飞利浦公司的电视设计,但之后朝通用路线发展,各种电子设计都有机会用到I2C 总的来说,I2C能够简单归纳为,两根线, ...
- 有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
个人不是很喜欢在技术上跟人互喷,尤其是不在同一个岗位上的人.一方面本人的性格如此,另一方面,我自身的口水也确实是不行,人生经历了第一次的双11洗礼,在大促的环境下,总算知道了有些东西是否应该规避,这次 ...
- Backbone实例todos分析
源码来自:http://todomvc.com/examples/backbone/ 这是一个用Backbone.js完成的待办事项实例,精简但完善,可以帮助很好的帮助理解Backbone的API,M ...
- Netty入门实例及分析
什么是netty?以下是官方文档的简单介绍: The Netty project is an effort to provide an asynchronous event-driven netwo ...
- hello1与hello2的代码分析
1.hello1代码分析 hello.java package javaeetutorial.hello1; import javax.enterprise.context.RequestScoped ...
- SQLServer数据库,表内存,实例名分析SQL语句
--数据库内存分析 USE master go DECLARE @insSize TABLE(dbName sysname,checkTime VARCHAR(19),dbSize VARCHAR(5 ...
- 对Java tutorial-examples中hello2核心代码分析
1.在hello2中有两个.java源文件分别是GreetingServlet.Java和ResponseServlet.jva文件主要对以下核心代码做主要分析. String username = ...
- ORACLE AWR报告生成过程出现多个实例记录分析
在一次生成AWR报告中,发现在"Instances in this Workload Repository schema"部分,出现了多个实例记录信息(host敏感信息被用host ...
随机推荐
- Forth 文本解释程序
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 手把手教你如何使用Cocos2d Console 进行html5项目发布
手把手教你如何使用Cocos2d Console 进行html5项目发布 1.首先需要先安装Cocos2d Console运行需要的工具. 详情参见 这篇文章 http://www.cocoach ...
- abstract、final和native几大注意点
变量不能被defalut修饰 native修饰方法,native修饰的方法简单来说就是:一个Java方法调用了一个非Java代码的接口.定义navtive方法时,并不提供实现体,因为其实现体是用非Ja ...
- 基于react的MQ管理系统遇到的问题以及解决办法
跟一般的管理系统差不多 一.需求 1.新增申请和修改的弹窗里面的部门跟应用组改成下拉框,并调取后台接口获取到相应的值.1.1相应的代码 // 获取部门 getDepartment = () => ...
- JavaWeb项目三要素
- docker学习端口映射---第二章节
一.运行一个web应用 首先,下载一个docker镜像: [root@k8s-01 ~]# docker pull training/webapp 运行webapp的容器: [root@k8s-01 ...
- Linux上的10个Touch命令实例
Linux Touch 命令 Touch命令可以用来修改文件访问或修改的时间戳.实际上,它更常仅仅用于快速的创建一个空白文件. 这篇文章展示了一些非常简单和快速的实例,使用Touch命令来修改时间戳和 ...
- 专业的“python爬虫工程师”需要学习哪些知识?
学到哪种程度 暂且把目标定位初级爬虫工程师,简单列一下吧: (必要部分) 熟悉多线程编程.网络编程.HTTP协议相关 开发过完整爬虫项目(最好有全站爬虫经验,这个下面会说到) 反爬相关,cookie. ...
- Openresty 源码安装脚本
Openresty 中文官网地址 http://openresty.org/cn/ #! /bin/bash function openrestyinstall() { cd /opt/openres ...
- callback回调函数的理解
callback采用的设计模式是:模板模式,他的设计理念是基于面向对象中的多态的. 我们的程序中走到某个地方他会出现不一样的动作的时候,我们在这儿就使用回调函数.我们利用的就是 多态的原理,我们传递不 ...