我们通过浏览器请求servlet的时候,servlet容器是怎么知道该调用哪一个servlet的?那么就需要去配置一个映射表。有两种方式进行配置,首先介绍第一种:
如图所示,我们在web.xml中进行配置
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
//首先告诉servlet容器,我这里有哪些的servlet,即声明一个servlet
<servlet-name>loginController</servlet-name>
//说明这个servlet指向哪一个类
<servlet-class>cn.edu.mju.project1.comtroller.LoginController</servlet-class>
</servlet>
//建立映射关系
<servlet-mapping>
<servlet-name>loginController</servlet-name>
<url-pattern>/login</url-pattern>//这个就是我们访问的地址,资源名称
</servlet-mapping>
</web-app>
此时我们在浏览器输入该地址,就可以执行该类里面的某一个方法
可以发现该页面并没有报错,也就是说明我们访问到了这个资源
此时我们在控制台发现输出了doGet,说明我们的程序执行到该类中的System.out.print(“doGet”); 这条语句。
接下来介绍第二种方法,第二种方法是注解的方式,较为简单
@WebServlet("/login")
直接在类的外面定义资源名称即可。
如图所示,我们可以发现第二种方法依然可以实现Servlet容器映射表的配置。因为第一种方法比较麻烦,需要写较多的代码,因此我们一般都使用第二种方法。