文章目录
关于servlet
1. servlet是什么?
Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
————来自百度百科
2. 如何在IDEA中部署Servlet(最后有避坑指南)
1. 新建一个项目
新建项目的时候选择Java Enterprise这个(即红框框住的这个)
还要注意箭头标志的3个注意点
1处选择Web application
2处选择自己配置好的对应的Tomcat版本(此处也可以先不选,创建完在里面可以配置的,方法见博文最后部分)
3处看看是否选择了正确的JDK版本
勾选Servlet即可,点击Finish完成项目创建
2. 使用Maven导入jar包
创建好的目录界面是这样子的
打开pom.xml在里面添加依赖(记得要在project标签内添加否则会不行)
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
使用方法为搜索jar包名字,找到对应jar包然后点击需要的版本,会出现下图,直接复制在dependencies内粘贴就可以了
想要不同版本的只需要在version里修改即可(但前提是真的有这个版本存在)
依赖添加以后点击下图这个按钮刷新
成功了就可以在右侧看到了(失败的话可能是墙的问题,自行百度如何配置阿里云服务器来下载,此处不赘述)
3. 配置web.xml
链接servlet方法较多,此处只说明配置web.xml的方法
在web.xml里面输入以下代码
!注意:servlet-name是可以随便取的,只是一个名字,但下方都要统一
servlet-class是需要输入对应java类的类名,前面如果有文件夹的话也需要用.来输入
而url-pattern是映射地址**(别忘了加上/)**,如在浏览器里输入http://localhost:8080/demo_war_exploded/hello时会开始匹配对应的HelloServlet
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.example.demo.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
servlet和servlet-mapping是互相对应的,不可缺少一个
4. 重写HelloServlet中doPost和doGet方法
右键选择Generate
选择第三个
选中doGet和doPost方法
到此为止,一个简单的servlet项目就创建成功了!
3. 项目中tomcat的部署问题
1. 点击右上角的Add configuration
2. 先点左上角的加号,再选择tomcat server下的local
3. 配置tomcat
把红框的东西配好即可
4. 添加Artifacts
右键下方的tomcat选择Artifacts
选择war exploded这个再点Add(其实两个都可以)
5. OK完成,我们来试试
那我们在index.jsp的body里写一句
Hello world
再点运行看看Nice!tomcat部署成功
关于避坑指南(血与泪的教训)
-
我原先下载的tomcat版本是10的,然后没想到我导入的这两个jar包依赖是和tomcat10有冲突的,这也就会导致在配置成功后打开HelloServlet界面会出现500的错误(最后含泪退回tomcat9版本)
解决方案:如果是tomcat10,就不要导入上文的依赖,可以自己在tomcat文件夹内的lib里找到servlet-api.jar这个jar包手动导入即可
-
servlet和servlet-mapping标签要加在web.xml里的web-app标签里(之前儍儍的放在外面,怎么也不行。。)
-
配置tomcat的时候不要选错了!!!,有一个也是长着个猫头的tomEE server不是我们要选的,别选它!(图标一样,容易眼瞎选错了)
最后欢迎评论区讨论指正,鞠躬~
let和servlet-mapping标签要加在web.xml里的web-app标签里(之前儍儍的放在外面,怎么也不行。。)
3. 配置tomcat的时候不要选错了!!!,有一个也是长着个猫头的tomEE server不是我们要选的,别选它!(图标一样,容易眼瞎选错了)
最后欢迎评论区讨论指正,鞠躬~