Tomcat环境搭建,见:https://blog.csdn.net/BruceZong/article/details/90636868
一)Servlet完整配置流程
1. 创建一个Servlet类,继承自HttpServlet,如下代码:
package com.test.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@SuppressWarnings("serial")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.print("<h1>Hello, Servlet!");
}
}
1)自定义类继承自HttpServlet,需要引入servlet的jar包,可以从tomcat安装目录/lib/servlet-api.jar获取
2)覆写doGet()/doPost()方法,以响应get/post请求。注意一定不要调用super()方法。
2. 使用javac命令或者eclipse编译生成class文件
3. 在tomcat的webapps目录下建议一个新文件夹,自定义名称,例如HelloServlet,目录内容如下
HelloServlet
WEB-INF
classes
lib
web.xml
* classes目录中存放编译生成的servlet的class文件,如果有定义package,则将完整的目录放到classes文件夹下
* lib目录用来放置servlet代码引入的一些其他的Jar包
* web.xml用来指定访问路径与servlet类的映射关系
4. 将生成的HelloServlet.class文件按照完整包路径防止与classes文件夹下,本例中为
classes/com/test/servlet/HelloServlet.class
5. 配置web.xml,内容如下:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0"
metadata-complete="true">
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>com.test.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
说明:
1). <servlet>配置servlet名称(自定义,但需要与servlet-mapping中的名称相同)与Servlet完整的路径
2). <servlet-mapping>中配置servlet的名称与访问的路径
3). 如果要配置多个Servlet,直接复制多个<servlet><servlet-mapping>标签,修改对应的内容即可
6. 配置完成之后,启动tomcat,即可以通过http://localhost:8080/HelloServlet/hello来访问此Servlet,效果如下
二)上面部分是通过web.xml配置Servlet映射关系去访问Servlet。在Servlet 3.0之后,支持以注解的方式去配置映射关系,不需要再配置web.xml文件。主要改动点如下:
1)在Servlet类定义前,加上WebServlet标签,来配置访问的路径,如下:
2)编译之后,将class文件拷贝靠classes目录下,可以不用配置web.xml文件,直接将其删除,或者将其中metadata-complete="true"属性值修改为false
3)通过http://localhost:8080/HelloServlet/test来访问此Servlet
参考:https://www.cnblogs.com/shuiliuhualuo/p/5996180.html
参考:https://blog.csdn.net/izzxacbbt/article/details/81842794