上文的【Maven父子项目工程中的Servlet优化与准备】一文中我们已经建立好了需要的工程,本文,我们尝试搭建第一个Servlet项目。
Servlet接口在sun公司有俩个默认的实现类:HttpServlet和GenericServlet
新建立一个java接口,标准按照阿里巴巴接口标准
com.gowork.servlet
如下图:

1.写一个普通类 ,我的类名为:HelloServlet
2.尝试实现我们的Servlet接口,我们可以直接继承HttpServlet,这个接口是sun公司的默认的实现类。
如下:
package com.gowork.servlet;
import javax.servlet.http.HttpServlet;
public class helloservlet extends HttpServlet {
}
重写Servlet的doGet和doPost方法:
Servlet重点源码如下:
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
idea重写方法快捷键:
Ctrl+O

因为get或post只是请求实现的不同方法,所以它们可以相互测试。业务逻辑是相同的。
编写类:
public class helloservlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter Writer= resp.getWriter(); //响应流
Writer.print("Hello,Servlet 上进小菜猪");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
}
}
我们编写了一个java程序,但我们需要通过浏览器访问它,浏览器需要连接到web服务器,因此我们需要注册我们在web服务中编写的servlet,并为其提供浏览器可以访问的路径。
进入子项目中的web.xml添加配置如下:
<servlet>
<servlet-name>helloservlet-name>
<servlet-class>com.gowork.servlet.helloservletservlet-class>
servlet>
进入子项目中的web.xml添加配置如下:
<servlet-mapping>
<servlet-name>helloservlet-name>
<url-pattern>/hellourl-pattern>
servlet-mapping>
点击右上角的添加:

点击加号,找到Tomcat,配置基础配置,确保配置如下:

注意配置项目发布的位置!
点击上面的启动项目,等待配置服务器:

启动之后,我们会发现多了应该webapp文件夹和target文件夹

webapp文件夹里面的index.jsp为我们的前端样式文件,类似html,如下:
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
我们启动项目:
http://localhost:8080/javweb

本地访问http://localhost:8080/javweb
结果如下:

映射文件为:
<servlet>
<servlet-name>helloservlet-name>
<servlet-class>com.gowork.servlet.helloservletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>helloservlet-name>
<url-pattern>/hellourl-pattern>
servlet-mapping>
由上面的xml文件可以看出,如果游览器访问/hello,会转到com.gowork.servlet.helloservlet,而我们的com.gowork.servlet.helloservlet配置如下:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter Writer= resp.getWriter(); //响应流
Writer.print("Hello,Servlet Shangjin small vegetable pig");
}
所以映射输出为:
Hello,Servlet Shangjin small vegetable pig

本次任务完成!