零基础Java Web初学者(三):Servlet的两种配置方法

零基础Java Web初学者(三):Servlet的两种配置方法 大家好我又来分享学习笔记啦继上次成功用Maven创建了Web项目后我终于可以开始学习Java Web的核心——Servlet了。简单说Servlet就是运行在服务器上的Java小程序专门用来处理浏览器发来的请求比如点个按钮、提交个表单然后返回动态的网页内容。经过查阅资料和动手实践我发现主要有两种方式一种是传统的 web.xml 配置法另一种是现代简洁的 注解配置法。下面我就把这两种方法都跑通一遍并记录下过程中的关键点和坑。1. 准备工作在Maven项目中创建Servlet类选择file中的Close Project关机项目点击Customize然后选择下方的All settings...全部设置在左侧找出Maven配置它 如图所示 然后插入.xml文件 点击ok回到主页面点击Projects选择New project新建myxmall项目然后在src文件夹中 依次创建以下文件夹如果发现创建文件不是树形结构依次排序的 点击设置图标选择第一个然后根据图片取消勾选就行然后在pom,xml中写入jar包然后在HelloServlet中写入想要输出的代码配置web.xml然后点击绿色三角 启动运行 出现自己打的文字 就是成功了2. 方法二现代配置法——使用注解WebServlet从Servlet 3.0对应Java EE 6Tomcat 7及以上版本开始引入了注解Annotation支持。我们可以直接在Servlet类上使用WebServlet注解一步到位完成声明和映射。在Servlet类上添加注解回到我们的HelloServlet.java文件在类定义的上方添加WebServlet注解。[配图建议HelloServlet.java的截图在类名上方添加WebServlet注解并设置urlPatterns]javapackage com.example.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; // 别忘了导入这个包 import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; // 使用注解配置访问路径 WebServlet(name helloAnnotation, urlPatterns {/hello2}) // 或者更简单的写法WebServlet(/hello2) public class HelloServlet extends HttpServlet { // ... doGet方法内容完全不变和上面一样 ... }注释掉或删除web.xml中的配置因为我们已经用注解配置了为了避免冲突最好把刚才在web.xml里添加的servlet和servlet-mapping配置注释掉或删除。当然保留也无妨只要路径不同就行这里是/hello2和之前的/hello不一样。运行测试重新部署并启动项目有时需要重启服务器让注解生效。打开浏览器访问新的路径http://localhost:8080/hello2。[配图建议浏览器成功显示同样内容的页面截图地址栏显示的是/hello2]应该能看到和刚才一模一样的结果这说明WebServlet注解生效了它告诉服务器这个类就是要处理/hello2路径请求的Servlet。优点代码少直观把配置和类写在一起开发效率高。缺点修改路径需要重新编译Java类。如果项目中有很多Servlet想统一查看所有路径映射就不如web.xml方便。4. 总结与选择那么到底该用哪种方法呢作为一个刚开始学习的新手我的体会是初学阶段强烈建议两种都亲手试试先通过web.xml配置一遍能帮你深刻理解“Servlet声明”和“Servlet映射”这两个概念之间的关系。然后再用注解感受一下它的便捷也能明白注解背后其实就是在做和web.xml同样的事情。实际开发目前绝大多数新项目都采用注解方式因为它简洁、高效符合现代开发的习惯。维护老项目有些比较老的项目可能还在用web.xml所以看懂它也是必备技能。不管用哪种方式核心思想是不变的把“一段Java代码”和一个“URL访问路径”绑定起来。理解了这一点Servlet就算是入门啦接下来我打算深入学习doGet和doPost方法的区别以及如何接收浏览器传递过来的参数。路还很长但每一步的“Hello World”都让人充满动力如果大家在配置过程中遇到404错误页面找不到或者500错误服务器内部错误通常是类名写错或注解忘写了欢迎在评论区留言我们一起排查如切如磋如琢如磨。