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。

原文地址:https://www.cnblogs.com/ljy1/p/10591432.html

时间: 2024-11-09 06:18:29

Hello2实例的分析的相关文章

Hadoop初学指南(6)--MapReduce的简单实例及分析

本文在上一节的基础上通过一个简单的MR示例对MapReduce的运行流程进行分析. 假设有两行数据,分别是hello you,hello me,我们要统计其中出现的单词以及每个单词出现的次数. 所得的结果为 hello   2 you     1 me      1 (1)大致运行流畅 1.解析成2个<k,v>,分别是<0, hello you><10, hello me>.调用2次map函数. 2.执行map任务 3.map输出后的数据是:<hello,1>

Android中的消息处理实例与分析

Android中的消息处理实例与分析 摘要 本文介绍了Android中的消息处理机制,给出了Android消息处理中的几个重点类Handler.Message.MessageQueue.Looper.Runnable.Thread的详细介绍,提供了两个消息处理的实例代码,并深入分析了使用Android消息机制应该遵循的几个原则. 阅读本文的收获 在具有java基础的情况下,Android的学习比较轻松,很多人在没有深刻了解Android消息处理机制的背景下,已经能够开发出可用的app,很多人开始

电脑声卡维修经验和实例完全分析

电脑声卡维修经验和实例完全分析 声卡无法"即插即用" 1.检查声卡跳线是否正确.例如,一块联讯OPTI931声卡,有一说明书上没有的隐含跳线JP3,短路即为PnP,开路时Windows 95认不出声卡,但出厂时默认为开路! 2.如果你的声卡号称PnP,但Windows95就是不认怎么办?像以前很难安装的007声卡,解决方法很简单:假设安装前操作系统是DOS,先安装DOS下的声卡驱动再进行Windows 95的安装,在安装中间提示"本机即插即用设备"时选择"

通过实例来分析I2C基本通信协议

本文旨在用最通俗易懂的方式,让大家明白I2C通信的过程究竟是怎么回事. I2C起源于飞利浦公司的电视设计,但之后朝通用路线发展,各种电子设计都有机会用到I2C 总的来说,I2C可以简单归纳为,两根线,一个时钟线,一个数据线:一个总线上,一个主控,多个从设备.I2C的作用当然是用来传输数据,它的最大特点就是仅仅用了2根线,可以完成对总线上多个从设备的有序通信,这就依赖于其通信协议了. 主控相当于I2C的大脑,每一次读写操作都必须是主控发起的.这样就保证了多个从属设备间是无法直接通信的,这样就防止了

Netty入门实例及分析

什么是netty?以下是官方文档的简单介绍: The Netty project  is an effort to provide an asynchronous event-driven network application framework and tools for rapid development of maintainable high performance and high scalability protocol servers and clients. In other

SQLServer数据库,表内存,实例名分析SQL语句

--数据库内存分析 USE master go DECLARE @insSize TABLE(dbName sysname,checkTime VARCHAR(19),dbSize VARCHAR(50),logSize VARCHAR(50)) INSERT INTO @insSize ( dbName, checkTime, dbSize, logSize ) EXEC sp_msforeachdb 'select ''?'' dbName,CONVERT(VARCHAR(19),GETDA

backbone实例todos分析(二)view的应用

在上一篇文章中我们把todos这个实例的数据模型进行了简单的分析, 有关于数据模型的操作也都知道了.接着我们来看剩下的两个view的模型,以及它们对页面的操作. 首先要分析下,这个俩view是用来干嘛的.按照自己的想法,一个页面上的操作,直接用一个view来搞定不就行了吗,为何要用两个呢? 我觉得这就是新手和老手的主要区别之一,喜欢在一个方法里面搞定一切,随着时间的推移,再逐渐重构,让代码变得灵活可扩展.但既然我们拿到一个成熟的代码,就应该吸取其中的精华. 我觉得这里面的精华就是,将数据的展示和

对Java tutorial-examples中hello2核心代码分析

1.在hello2中有两个.java源文件分别是GreetingServlet.Java和ResponseServlet.jva文件主要对以下核心代码做主要分析. 1 String username = request.getParameter("username"); //获取表单数据 2 if (username != null && username.length() > 0) { 3 RequestDispatcher dispatcher = //定义一

Java RMI(远程方法调用) 实例与分析 (转)

目的: 通过本文,可以加深对Java RMI的理解,知道它的工作原理,怎么使用等. 也为了加深我自己的理解,故整理成文.不足之处,还望指出. 概念解释: RMI(RemoteMethodInvocation):远程方法调用,顾名思义,通过远程的方式调用非本地对象的方法并返回结果.使用远程调用通常解决本地计算瓶颈问题,例如分布式记算,最近很火的阿尔法狗人机大战,据说运算使用上千个CPU. JRMP(java remote method protocol):java远程方法协议,这是完成java到j