最近在学习servlet,我用的工具时idea,在创建maven web项目时遇到了一些坑,比如@WebServLet这一类的注解失效,Tomcat服务器报服务器内部错误,浏览器访问时项目路径出错等问题,接下来我就说一下避坑指南
在idea中创建maven web项目时一般会选择如下步骤
在idea中创建maven web项目选择的一般都是图中所示原型,这样创建一个maven web项目是没有问题的,那么注解失效原因是什么呢,其实在按步骤创建项目后创建的是一个2.5版本的项目,而注解只有3以上的版本才支持。
首先打开自己maven本地仓库,依次按照图中路径点击,找到图中所示jar包
用压缩软件奖图中所示jar包打开(不要解压),找到web.xml,右键点击编辑。
将原先内容替换为如下内容
<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_3_1.xsd"
version="3.1">
web-app>
好了,问题一解决
由于我最开始用的是Tomcat10,在写好一个项目之后,启动Tomcat服务器,访问页面,结果报错:服务器内部错误。出现这个错误的原因是由于Tomcat10使用的是jakarta.servlet.api,而在项目中使用的是javax.servlet.api,所以蔡会报服务器内部错误。
以下方案任选其一
先看一下这是什么情况吧如图
这是首页,当我输入数据点击提交后
仔细看就会发现路径里面少了东西,少的就是我们的项目名,加上项目名称后可以正常访问
这里的坑是你点击按钮跳转,路径中没有项目名
方案一
form表单的action属性的路径不要加“/”,这个“/”代表的是“http://ip:port/”中的最后一个斜杠
方案二
如图,右上角点击编辑配置
点击部署,找到图中所示位置,将“/”之后的字符全部删除,然后点击确定
问题解决