初次使用Servlet-JSP笔记-1

一、环境

  1. Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1)
  2. Apache Tomcat version: 8.0.39

二、课堂学习目标

了解servlet的虚拟路径使用方法,这里具体讲解使用Eclipse的servlet3.0之前的版本(使用servlet2.5版本)中关于WebContent/WEB-INF/web.xml的使用方法以及servlet3.0及之后的版本的虚拟路径使用方法。

三、开始

测试一:利用servlet3.0之前的版本进行测试

利用Eclipse新建一个Dynamin Web Project,调用安装的Apache Tomcat V8.0版本,然后选择2.5的servlet版本,该IDE会自动新建一个WebContent/WEB-INF/web.xml文件。

New Dynamic Web Project

之后我们新建两个servlet,一个直接全部使用默认设置,另一个我们点击下一步后不使用默认自带的doPost()和doGet()方法。

Create Servlet

新建一个index.jsp文件后,软件视图如图所示:

index.jsp

因为本次我们需要利用servlet配置虚拟路径,所以我们直接利用未初始化重写方法doPost()和doGet()的Servlet_2.java进行操作,在Servlet_2.java中的Servlet_2类中空白处点击右键,选择"源码",然后选择"覆盖/实现方法"中选择对应的doGet(),然后我们进行重写操作,输出一行数据。

Servlet2.java

然后我们就需要修改web.xml文件进行虚拟路径的部署,这里由于我们提到了web.xml文件,所以,我们需要介绍一下什么是web.xml文件。

题外话:什么是web.xml文件?

web.xml文件可以简单的理解成servlet的一个配置文件,通过这个配置文件来寻找对应的servlet处理业务。配置web.xml的目的就是让容器知道你的请求是由那个servlet处理,然后把httprequest和httpresponse对象注入到该servlet中。一个web.xml中当然可以存在多个servlet规则,具体的使用方法下面将进行介绍。

需要注意的是,所有部署描述符文件的顶层(根)元素为web-app。而XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写。

继续

web.xml中配置映射servlet的规则十分简单,如下列代码所示:

<servlet>
<servlet-name>Servlet_2</servlet-name>
<servlet-class>com.bugwz.servlet.Servlet_2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Servlet_2</servlet-name>
<url-pattern>/Servlet_2</url-pattern>
</servlet-mapping>

如果你使用的servlet的版本是3.0之前的版本,如果你想要成功映射的话,你必须将这些代码(上面的代码是必须的,最简化)正确的在web.xml文件的web-app标签中书写,上述代码具体讲解如下:

  1. servlet标签
  • servlet-name标签内的信息对应servlet-mapping标签内的servlet-name的标签内的信息,推荐其内的信息与servlet的类名相同。
  • servlet-class标签内的信息为映射对象的信息,具体格式为"servlet所属包名.servlet的类名",这样才能找到具体的类,并执行。
  1. servlet-mapping标签
  • servlet-name标签内的信息内容上面已经说了。
  • url-pattern标签内的信息为该项目下的虚拟路径,也就是说项目下的/Servlet_2就会展示类Servlet_2中的信息,这里的虚拟路径可以根据需求修改。实践可知,url-pattern中信息若为/*,则该项目的所有子栏目,全部指向该处对应的类,是否可以通过某种方式存放正则表达式待考证。
  1. 执行过程为,根据servlet-mapping标签的子标签url-pattern的虚拟路径,按照servlet-mapping标签内的子标签servlet-name的信息,去寻找servlet标签中的子标签servlet-name中相同的信息,然后展示对应的servlet-class标签中的类中的可展示内容。

测试二:利用servlet3.0及其之后的版本进行测试

这里需要说明的是如果你的项目目前使用的是servlet3.0及之后的版本,那么你的项目中不会直接创建web.xml,servlet3.0 及之后的版本中新增的注解支持简化了 Servlet/ 过滤器 / 监听器的声明,从而使得 web.xml 变为可选配置。这里我们使用servlet3.1版本,目前最新的版本。

New Dynamic Web Project - Version

我们依次新建两个Servlet_1.javaServlet_2.java,然后我们会发现在新建的servlet中带了下面这一行代码,如下图所示:

@WebServlet("/Servlet_2")

Servlet_2

上面那一行代码其实就充当了web.xml中的定义的虚拟路径的那几行代码的功能,因此servlet3.0及之后的版本简化了代码的书写量,更加简单易用。

Author: bugwz
Link: https://bugwz.com/2016/11/29/jsp-1/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.