《Servlet和JSP学习指南》一1.3 编写基础的Servlet应用程序-阿里云开发者社区

开发者社区> 华章计算机> 正文

《Servlet和JSP学习指南》一1.3 编写基础的Servlet应用程序

简介: 本节书摘来自华章出版社《Servlet和JSP学习指南》一书中的第1章,第1.3节,作者(加)Budi Kurniawan,更多章节内容可以访问云栖社区“华章计算机”公众号查看
+关注继续查看

1.3 编写基础的Servlet应用程序

Servlet应用程序编写起来非常简单,只需要创建一个目录结构,并将Servlet类放在某一个目录下即可。在本节中,将学习如何编写一个简单的Servlet应用程序,将它命名为app01a。最初它只包含一个Servlet:MyServlet,其会给用户发送一条问候信息。
需要用一个Servlet容器来运行Servlet。Tomcat是一个开源的Servlet容器,可以免费获得,它也可以在能够使用Java的任何操作系统平台上运行。如果你还没有安装Tomcat,现在应该先去阅读附录A,并安装Tomcat。

1.3.1 编写和编译Servlet类

确定你的机器上已经有了Servlet容器之后,下一步就是编写和编译Servlet类。这个例子中的Servlet类是指MyServlet,如代码清单1-1所示。按照规范,Servlet类的名称要以Servlet作为后缀。

image

image

在阅读代码清单1-1中的代码时,可能首先会注意到下面这个注解:
image

用WebServlet注解类型来声明一个Servlet。在声明Servlet的同时,还可以告诉容器是哪个URL调用这个Servlet。name属性是可选的,如果有,一般是用来提供Servlet类的名称。关键是urlPatterns属性,它也是可选的,但是几乎都会用到它。在MyServlet中,utlPattern告诉容器,/my模式应该调用这个Servlet。
注意,URL模式必须以一条正斜线开头。
Servlet的init方法调用一次,并将private transient变量servletConfig设置成传给该方法的ServletConfig对象。
image

如果你想从Servlet内部使用ServletConfig,只须将传进来的ServletConfig赋给一个类变量即可。
service方法将字符串“Hello from MyServlet”传给浏览器。每当有针对该Servlet的HTTP请求进来时,都会调用service方法。
要编译Servlet,必须将包含Servlet API的类型放在类路径(Class Path)中。Tomcat的servlet-api.jar文件中打包有javax.servlet和javax.servlet.http包的成员。这个jar文件就放在Tomcat安装目录的lib目录下。

1.3.2 应用程序的目录结构

Servlet应用程序必须以特定的目录结构进行部署。图1-2展示了这个应用程序的目录结构。
image

这个目录结构最上方的app01a就是应用程序目录。应用程序目录下方是一个WEB-INF目录。它有两个子目录:
classes。Servlet类和其他的Java类都必须放在这里。类下方的目录反映了类的包结构。在图1-2中,已经部署了一个类:app01a.MyServlet。
lib。在这里部署Servlet应用程序所需的jar文件。Servlet API jar文件则不需要部署在这里,因为Servlet容器已经包含这些Servlet API了。在这个应用程序中,lib目录是空的。空的lib目录也可以删除。
Servlet/JSP应用程序一般会有JSP页面、HTML文件、图像文件以及其他资源。这些都应该放在应用程序的目录下,并且经常放在子目录下。例如,所有的图像文件可以放在一个image目录下,所有的JSP页面可以放在一个jsp目录下,以此类推。
放在应用程序目录下的任何资源,用户都可以通过输入该资源的URL而直接进行访问。如果你希望某个资源可以被Servlet访问,但是不能被用户访问,那么应该把它放在WEB-INF目录下面。
现在,把这个应用程序部署到Tomcat中。在Tomcat中,一种部署方法是将应用程序目录直接复制到Tomcat安装目录下方的webapps目录下。也可以通过在Tomcat的conf目录下编辑server.xml文件来部署应用程序;或者为了不用编辑server.xml,而单独部署一个XML文件到confCatalinalocalhost目录下。其他Servlet容器可能会有不同的部署规则。关于如何将一个Servlet/JSP应用程序部署到Tomcat的详细信息,可查看附录A。
这里建议部署Servlet/JSP应用程序的方法是将它打包成一个war文件来进行部署。war文件是指以war作为扩展名的jar文件。可以利用JDK提供的jar程序或者像WinZip这类工具来创建war文件。然后,将war文件复制到Tomcat的webapps目录下。当启动或者重启Tomcat时,Tomcat会自动解压war文件。以war文件的方式部署,这在所有的Servlet容器中都适用。在第16章中,你还会学到更多关于部署的知识。

1.3.3 调用Servlet

要测试你的第一个Servlet应用程序,需先启动或者重启Tomcat,并将浏览器切换到以下URL(假设将Tomcat配置成在它的默认端口8080上进行监听):

其输出应该如图1-3所示。

image

恭喜!你的第一个Servlet应用程序已经写好了!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
springboot 学习与回顾 :springboot 如何改变spring应用程序开发的
springboot,自动配置、起步依赖、命令行界面、Actuator
54 0
快速搭建基于 Serverless 的 .NET Core 数据库应用
快速搭建基于 Serverless 的 .NET Core 数据库应用 简介 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。
20049 0
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础
SAS学习笔记之《SAS编程与数据挖掘商业案例》(1)系统简介和编程基础 1. SAS系统简介 1.1 SAS是先编译后执行的语言,data步标志着编译的开始。 数据指针:当前内存缓存区,输入数据所在位置。 PDV:Program Data Vector,在DATA步中所有涉及的变量被编程当前向量的一部分。 2. SAS编程基础 2.1 SAS逻
1510 0
xcode反汇编调试iOS模拟器程序(四)自动断点应用之NSNotificationCenter
知道怎么查看后,先看看有什么实际应用,拿NSNotificationCenter来做实践吧。 首先在某个容易进入的地方加断点,并停在那,例如main函数。
910 0
Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序
原文 Windows Phone 8初学者开发—第3部分:编写第一个Windows Phone 8应用程序 原文地址: http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/P...
920 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载