目录
一、Servlet的web.xml文件配置
首先放入一段Servlet类的测试代码
package com.ly;
import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//扩展HttpServlet抽象类
public class HelloServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String ly = "Hello,this is Servlet web.xml! 你好,这是Servlet web.xml文件配置!";
System.out.println(ly);//检测点
//解决response乱码问题
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(ly);
}
}
Servlet的web.xml文件配置:创建Servlet类后,需要找到webapp目录下WEB-INF下的web.xml文件进行配置,对应位置如下图:
在前面我们讲到了关于Servlet声明和Servlet映射,故这里主要涉及Servlet映射配置,即URL模式(不知道Servlet声明部分的朋友请前往这里查看:servlet的认识、思考和简单尝试_寒冰·忆的博客-优快云博客)
web.xml文件配置的<url-pattern>元素的配置方式如下(使用通配符):
1.精准匹配通配符:
- /具体名称
- /具体名称/*
注:上述两种方式的名称必须是具体的才能触发访问
样例1(注意看第21行):
然后便可以通过http://localhost:8080/javaee-demo-day1/myServlet进行访问,效果如下图:
样例2(注意看第21行):
然后便可以通过http://localhost:8080/javaee-demo-day1/myServlet/*进行访问,效果如下图:
2.后缀匹配通配符:*.xx
注:*号部分自由填写,只要XX部分符合即可
样例(注意看第21行):
然后便可以通过http://localhost:8080/javaee-demo-day1/hello.haha 或者http://localhost:8080/javaee-demo-day1/aaaa.haha进行访问,效果如下图:
3.特别的通配符:
- /
- /*
注:/可匹配所有请求,包含了服务器内所有资源,除了.jsp
/*可匹配所有请求,包含了服务器内所有资源,无限制
样例1(注意看第21行):
我这里有一个.jsp文件,故此可以访问http://localhost:8080/javaee-demo-day1/,效果如下图:
样例2(注意看第21行):
然后便可以通过http://localhost:8080/javaee-demo-day1/*进行访问,效果如下图:
二、注解配置
同样使用上面的Servlet类的测试代码
注解配置的方式如下(直接在代码中添加):
@WebServlet("/Servlet")
注:只有Servlet可更改,即更改要访问的地址
样例(注意看第13行):
然后便可以通过http://localhost:8080/javaee-demo-day1/Servlet进行访问,效果如下图:
注:在同一个Servlet程序中配置web.xml文件和注解,二者不会冲突,比如上面我使用了注解配置,但我的xml配置依旧可存在:
并且可以访问,如下图:
三、Web.xml文件配置和注解配置的优缺点
(一)、xml配置的优点
-
xml是集中式的元数据,不需要和代码绑定的:
在开发中,xml配置文件和代码类是区分开的。不需要绑定到代码中。
-
使用xml配置可以让软件更具有扩展性:
例如,我们在spring中,我们不想使用接口而是想用接口的实现类,这个时候只需要修改xml配置中bean的class值就可以了。
-
对象之间的关系一目了然
-
开发者(程序员)能够为软件量身定做使用的标记,使得xml更通俗易懂
-
基于xml配置的时候,只需要修改xml即可,不需要对现有的程序进行修改
-
容易与其他系统进行数据交互,数据共享更为方便
(二)、xml配置的缺点
- 应用程序中如果使用了xml配置,需要解析xml的工具或者是是第三方类库的支持
-
解析xml的时候必然会占用资源,势必会影响到应用程序的性能:
以java为例,无论是将xml一次性装置到内存中,还是一行一行读取解析,都会占用资源。
-
xml配置文件过多,会导致维护变得困难
-
在程序编译期间无法对其配置项的正确性进行验证,只能在运行期发现
-
开发的时候,既要维护代码又要维护配置文件,使得开发的效率降低
-
开发工具对xml配置的验证支持的不是很好:
目前有不少开发工具对于xml配置的正确性不能够得到很好的判断。
(三)、注解配置的优点
- 注解和代码是写在一起的,降低了维护两个地方的成本
- 注解如果有问题,在编译期间,就可以验证正确性,如果出错更容易找到
- 使用注解开发能够提高开发效率,不用多个地方维护。
(四)、注解配置的缺点
- 修改比较麻烦。如果需要对注解进行修改的话,就需要对整个项目重新编译
- 在程序中如果注解太多的话,会影响代码质量,代码会不够简洁
- 处理业务类之间的复杂关系,不然xml那样容易修改,也不及xml那样明了
- 注解功能没有xml配置齐全
(五)、总结
- xml配置书写较灵活、修改时不需要更改代码,更方便,且容易扩展,但维护困难,开发效率低一些
- 注解配置书写简单,容易检测出问题,开发效率高一些,但修改麻烦,影响了代码的简洁性,且功能没有xml配置齐全