前言
- 我们在使用Servlet创建JavaWeb项目时,想要绑定url路径和Servlet的映射关系,需要在web.xml中配置映射关系。
- Servlet从2.5版本开始支持注解。具体来说,Servlet 2.5引入了注解配置方式,使得Servlet应用程序的配置更加简单、灵活。在此之前,Servlet的配置主要通过web.xml文件来完成。而从Servlet 2.5开始,开发人员可以通过注解(如@WebServlet)直接在Servlet类上进行配置,省去了编辑web.xml文件的繁琐步骤。
此时容易出现一个常见的问题,接下来实例演示:
没有使用注解的Servlet配置
例:
一个简单的javaWeb项目的结构如下:此时只包含一个Servlet类
只使用web.xml进行Servlet配置的源码和配置文件如下:
Servle类:
import javax.servlet.ServletException;
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 ServletTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//设置响应类型和响应字符集,防止中文乱码
response.setContentType("text/html;charset=UTF-8");
//获取响应输出流
PrintWriter out = response.getWriter();
//在页面打印HTML标签(会解析成对应的效果)
out.println("<html>");
out.println("<head><title>Servlet</title></head>");
out.println("<body>");
out.println("你好,欢迎来到Servlet世界");
out.println("</body>");
out.println("</html>");
//使用完毕,关闭流资源
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletExcepti