IDEA的javaweb项目中的servlet的配置大全
写在前面你需要准备好的东西:
①IDEA版本不限,我用的2020.
②JDK 1.8(小科普JDK1.8其实就是JDK8)
③tomcat8.5.78(不要用最新的tomcat10.及以上版本,10以上的版本对于本文的技术不适配)
④maven 3.6.3(别问我为什么这个版本,问就是好用)
当你准备好以上的所有东西,我们开始!
- 创建maven项目,可以选择用骨架,但是我没有用
直接next,这里没有用骨架,然后命名,坐标就用默认
项目创建好之后就张这个样子,目前这是一个简单的maven java项目,这里没有web目录,需要我们补充,来让这个项目变成idea可以识别的javaweb项目。
先在我们的pom.xml中导入我们项目需要的依赖坐标,记得先去配置maven的私服镜像,不然下载很慢(在file-setting-maven中设置)
刚导入之后是红色的,因为你的项目里没有这个依赖包,点击右上角的插件刷新(插件叫maven helper,可以在idea中直接搜索下载)刷新后已经导入,可以看下左边目录中的External library中的servlet包已经导入了
接下来我们需要把项目变成一个javaweb项目,这里点击file-project structure-facets
选择ok,表示这个webfacets添加到哪个项目里,选择我们这个项目即可。
然后添加必要的webapp目录,记得是放在src的main目录下
选择yes,创建这个目录
再点击上面type上面的加号,创建web的web.xml文件
这里的目录可能不是main下面,可以先创建,然后再在左边的目录结构中拖拉调整,
以上步骤完成之后,点击右下角的apply,然后点击ok,目录结构发生变化,然后自己调整目录结构,调整至下图,因为maven项目的目录规则很严格,所以一定要对应的文件放进对应的目录下,我们目录webapp文件夹上面有蓝色的圆点,就代表idea已经识别这个目录是放置web资源的文件了。
编写servlet类。
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class servletTest extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doGet(req, resp);
System.out.println("get请求");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doPut(req, resp);
System.out.println("post请求");
}
}
导入的servlet包没有错误的话,这里直接粘贴进去就可以了
在web.xml中配置servlet的路径,赋值粘贴进入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-name>servlet</servlet-name>
<servlet-class>servlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
</web-app>
效果如图
再点进这个项目结构中,点进artifacts中,如果已经有了artifacts我们就不要创建了,没有的话我们点击+号,创建一个。
创建如下,记得选择带exploded的web项目,这个代表热部署,虽然我也不是很懂,好像就是每次修改项目之后,会自动的重新打包项目。
选择ok即可,然后点击apply和ok。创建结束
点击Build,选择build Artifacts,将我们的项目打包
build之后可能生成的是out也可能生成的是target文件,这两个都是编译打包后的文件,也会两个都生成。
点击导航栏右边的绿色锤子的右边,配置tomcat,点➕选择local,
选择deployment。
点击➕
这里把下面的context改成项目名字,它默认的名字太长了,然后点击apply,ok。
点击项目右上方的开始运行按钮,会弹出404,这是因为他会默认弹出我们项目的index.html页面,也就是我们的主页面,但是我们目前没有页面,所以不会弹出,也就是404.
接下来我们访问我们的servlet类,我们在web.xml
中配置了访问目录login,所以加上就可以访问进去了,但是这里什么也没有,是因为我们servlet中没有写resp返回,但是我们System.out.prinin了一句话,我们在回到idea的项目中查看,
服务器下方出现了get请求这几个字,说明浏览器成功访问到了我们的servlet类,并且servlet类成功执行了方法。
到这里我们的基本的流程就走完了,自己摸索了一星期,看了无数的参考文献,才摸索出来,免费分享给大家!