目录
1.简介
这篇文章将简要介绍如何通过重写doGet()和doPost()方法编写servlet程序。在文章讲解中使用IDEA编辑器,并且在一个父工程下建立多个子工程的方式来创建项目。具体看下文。
1.1什么是servlet
servlet是Javaweb中用于实现动态页面的接口,所以在实际代码中我们不会直接去实现servlet这个接口,而是去继承一个实现了它的抽象类:HttpServlet。类与接口之间关系如下图:
Servlet接口如下图:
可以看到,Servlet其中最重要的方法就是void service(),从命名就可以看出来,这个是实现服务的主要方法。
GenericServlet在此处没有重写service方法,略过。这里说一下HttpServlet:
看得出,HttpServlet中,它对service进行了重写,并且根据req参数的不同,使用了不同的方法进行了处理。下面的文章中我将介绍对doGet()和doPost()进行重新重写实现业务的方法。
2.两步骤
从上面的介绍可以看到,HttpServlet是一个抽象类,而且它重写的service()方法和它的doGet()等方法实际上没有进行业务处理,所以,想要使用Servlet类,有以下两个步骤:
1)写一个类(HelloServlet),继承HttpServlet
2)在这个类(Hello Servlet)中重写doGet()和doPost()方法,实现业务
3.代码实现
3.1用IDEA建一个普通的maven项目
下面的图片主要是进行以下步骤:
1)先建了一个普通的maven项目,并且把它的src文件夹删除了。这个普通的maven项目就作为父亲项目,在这个父亲项目中可以建很多子项目。在图片中有提到过“添加依赖”的代码,父亲项目中添加的依赖,子项目可以使用。
2)父亲项目下建了一个webapp的子项目,并建立了java和resources文件夹。我们将会在java文件夹下编写继承了HttpServlet类的HelloServlet类.
<dependencies>
<!-- servlet依赖的jar包start -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!-- servlet依赖的jar包start -->
<!-- jsp依赖jar包start -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.1</version>
</dependency>
<!-- jsp依赖jar包end -->
</dependencies>
3.2编写HelloServlet类
这里分为注册类和注册路径两步
每个<servlet></servlet>标签都必须要有一个<servlet-mapping></servlet-mapping>一起组合,它们就注册了由<servlet-name></servlet-name>标签中字符串命名的类(也就是说,这两个标签中servlet-name必须相同),而这个类又由<servlet-class></servlet-class>指定,其默认路径就是main下的java文件夹。<url-pattern></url-pattern>则指明了在浏览器中的访问路径
那么为什么要这样进行注册呢?因为我们编写的HelloServlet是Java类,而我们想要让用户通过浏览器来使用它提供的服务,那么就需要有一个操作,告诉浏览器通过一个怎样的路径可以访问到一个怎样的类,这个类它实现了一个浏览器恰好需要的功能。这里就是为了实现这个。