HelloServlet示例
创建项目使用的是maven的 webapp模板
需要的Maven依赖如下
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<!-- jsp -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
Servlet 代码如下:
import javax.servlet.ServletException;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloServlet extends HttpServlet {
//由于get和post只是请求实现的不同的方式,可以相互调用,这里的业务逻辑都一样
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
/*
ServletInputStream inputStream = req.getInputStream();
ServletOutputStream outputStream = resp.getOutputStream();
*/
//响应流
PrintWriter writer = resp.getWriter();
//写是print,append是追加,flush是刷新
writer.print("HelloServlet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//调用doGet方法
doGet(req, resp);
}
}
不要忘记将 web.xml
的头换成最新的
然后编写映射
为什么需要映射?因为我们虽然写的是java程序,但是要通过浏览器访问
而浏览器需要连接Web服务器,所以我们需要在Web服务器中注册我们写的Servlet,还需给他一个浏览器能够访问的路径
映射内容及文件头如下
<?xml version="1.0" encoding="UTF-8"?>
<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>
<servlet-name>helloServlet</servlet-name>
<!--填写需要注册的类-->
<servlet-class>com.mahe666.servlet.HelloServlet</servlet-class>
</servlet>
<!--Servlet请求路径-->
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<!--浏览器请求的地址,当我们在浏览器中访问这个地址的时候,就会返回被注册的类-->
<url-pattern>/helloServlet</url-pattern>
</servlet-mapping>
</web-app>
然后配置一下 Tomcat
假设在 Application context
中写的是 /s1
那么当我们启动Tomcat的时候,他返回的是 index.jsp
中的 Hello World!
所以当我们想要访问我们配置的servlet,我们需要在tomcat原有的虚拟路径映射地址加上我们注册Servlet时的路径地址,比如 localhost:8080/s1/helloServlet
最后,启动Tomcat,测试一下