Servlet-URL模式设置

请求如何与Servlet对应

通过前面学习,已初步了解Web容器工作过程以及Servlet的生命周期。但是请求如何与Servlet对应?

方法A:使用标注

标注?
在这里插入图片描述
即上图中的 @WebServlet() 标签。从Java EE 6的Servlet 3.0之后推出的功能。用于告诉Web容器如果请求的URI是/random_name,则由Demo的实例提供服务。

@WebServlet("/random_name")
public class Demo extends HttpServlet {
 	private static final long serialVersionUID = 1L;
 	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  		PrintWriter p = response.getWriter();
  		p.printf("<h1>hello world</h1>");
 	}
}

当URI是/random_name时,则响应“Hello world”。
在这里插入图片描述
换个标签再试一次!

@WebServlet("/change")

在这里插入图片描述

方法B:配置web.xml文件

在Serlvet 3.0没有标注之前,只能通过配置web.xml文件设置对应的Servlet对象。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
  <servlet>
      <servlet-name>demo</servlet-name>
      <servlet-class>home.Demo</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>demo</servlet-name>
      <url-pattern>/random</url-pattern>
  </servlet-mapping>
</web-app>

如上述代码所述,配置
在这里插入图片描述
两对标签,可以绑定URI与对应的servlet。
先看下效果,在解读web.xml文件对应的标签。
在这里插入图片描述
对比两对标签可以发现,都有servlet-name,且两个值相同。中间的名字可以任意,但需要记住两个值必须相同
第一对标签里内容。
在这里插入图片描述
servlet-class设置对应的servlet实例名称。这个值不是任取的,必须与自己已定义的servlet相对应,且注意包名。如下所示:
在这里插入图片描述
第二对标签里内容:
在这里插入图片描述
url-pattern标签设置url路径名,值可以任取。
通过上述分析,是否觉得有种映射的感觉?
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章