1.创建新项目
2.添加框架支持(Add frameworks Support)
idea 2023之前的用户,右键项目就可以找到,如下图
idea 2023之后的用户,需要选中项目,按两下Shift键,唤出搜索界面,输入Add找到Add Framework Support…
选择web application
添加之后会多出一个web目录
3.tomcat配置
点击自动部署项目,然后apply
4.添加jar包
打开Project Settings(IDEA左上角file的下级目录就有)
可以去tomcat安装目录lib下面找到Servlet需要的servlet-api.jar包
5.写个简单项目验证
项目目录(我把原来的index.jsp删了,不然会有一点干扰)
HelloWorldServlet.java
package cn;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
public class HelloWorldServlet extends GenericServlet {
public void init(ServletConfig config)throws ServletException{
System.out.println("init method is called");
}
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
PrintWriter out =response.getWriter();
out.println("Hello World");
}
public void destory(){
System.out.println("destory method is called");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--servlet标签用于注册servlet-->
<servlet>
<!-- <servlet-name> 指定servler名称-->
<servlet-name>HelloWorldServlet</servlet-name>
<!-- <servlet-class> 指定完整类名-->
<servlet-class>
cn.HelloWorldServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!--mapping 用于映射servlet对外访问的虚拟路径-->
<servlet-mapping>
<!--这里的servlet-name必须和上面的一样-->
<servlet-name>HelloWorldServlet</servlet-name>
<!--url标签用于指定访问该servlet的虚拟路径,以/开头-->
<url-pattern>/</url-pattern>
<url-pattern>/HelloWorldServlet</url-pattern>
</servlet-mapping>
</web-app>
运行结果
5.访问路径优化
上图可以看到8080后面有一串很长并且不知道什么意思的路径地址,其实这是我们在配置tomcat时,点击fix自动部署项目生成的。我们要在tomcat配置里改掉它,不然我们web.xml中(倒数3.4行)指定的servlet的虚拟路径无法生效。
修改Application Context,把后面那串单词删掉,只留一条斜杠,应用,然后重启项目。
这样我们在web.xml中指定的两种路径都能访问到了。
结语
我也是刚学的Servlet,很菜,创建项目都遇到了问题,所以编写这篇文章记录,也希望能帮助到有需要的小伙伴。要是有错误欢迎指出,大家一起学习进步。