目录
1.在注解中指定URL方法
2.在web.xml文件中指定
3.两种方法的不同点
4.常见问题
(1)项目文件中找不到web.xml文件
(2)无法使用注解进行路径指定
1.在注解中指定URL方法
首先,这里给出一个Servlet的简单实例代码:
public class ServletDemo03 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp); //交给doPost运行
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("Hello,world--Browse"); //输出到浏览器界面中
System.out.println("Hello,world--console"); //输出到编译器console中
}
}
如果要将这个Servlet类在容器中运行起来,则就需要指定类的URL,这里使用第一种方法,在.java文件中使用注解的方式进行配置。
注解配置语句:
@WebServlet("/url名")
将这条语句放在类的前面,即可完成该类的URL指定。
@WebServlet("/demo03")
public class ServletDemo03 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter out = resp.getWriter();
out.println("Hello,world--Browse");
System.out.println("Hello,world--console");
}
}
例如这个时候,在类的前面加上了@WebServlet("/demo03")。那么就在运行项目的时候在URL最后加上\demo03就可以运行该类。
2.在web.xml文件中指定
除了在.java文件中,也在web.xml文件中进行配置。
首先找到该项目下的web.xml文件,右键——》open with——》Generic Text Editor,打开web.xml文件后添加指定语句即可。
语句格式为:
<servlet>
<servlet-name>类名</servlet-name>
<servlet-class>包名.类名</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>类名</servlet-name>
<url-pattern> /URL名 </url-pattern>
</servlet-mapping>
例如这个时候我们在web.xml中添加我们的指定语句
这个时候就完成了对URL的配置,那么就在运行项目的时候在URL最后加上/servletDemo03就可以运行该类。
3.两种方法的不同点
使用注解进行指定时,只需要在.java文件中写入即可,而另一种方法需要在web.xml文件中写入。
由此可以得出两者的优缺点。
注解指定优缺点
优点 |
可以在.java文件中写入,代码量小,容易检查错误。 |
缺点 |
每一个Servlet类前都需要写入一句注解才能够运行。不利于集中管理 |
web.xml指定路径的优缺点
优点 |
项目内所有Servlet类都在改文件指定,容易集中管理。 |
缺点 |
当Servlet类过多时,.xml文件内容会非常多,并且在xml文件中不能使用编译器查找错误,编写修改的难度很大。 |
4.常见问题
(1)项目文件中找不到web.xml文件
因为在最新的Servlet版本上,默认不创建web.xml文件,所以在创建项目中需要勾选上创建web.xml的选项。
(2)无法使用注解进行路径指定
因为使用注解进行路径指定是在Tomcat7.0,Servlet3.0之后的版本才推出的,所以如果在创建项目中选用之前的老旧的版本,那么就无法使用该方法。所以我们在创建项目的时候需要选择Tomcat7.0和Servlet3.0以后版本。