1.java web工程创建
(1)File--->new--->project
(2)选择java enterprise,按照下图操作
(3)点击next后,会进入如下界面,修改工程名后,点击finish,工程创建完成。
(4)工程目录如下图所示
(5)在web/WEB-INF下创建两个文件夹:classes和lib
classes用来存放编译后输出的class文件,lib用于存放第三方jar包。
<1>配置class路径
File -> Project Structure (快捷键:Ctrl + Shift + Alt + S) -> 选择Module :
选择 Paths -> 选择"Use module compile output path" -> 将Output path和Test output path都选择刚刚创建的classes文件夹。

<2>配置jar包路径

选择刚刚创建的lib文件夹

选择“jar directory” -> 接着返回一路OK就行了

注意(天坑):往lib目录下添加jar包后,jar可能无法识别。
解决方案:
方法一:取消或添加勾选export
方法二:在Compile和Provide之间切换
以上两种方法选其一就可以了,达到刷新jar包路径的目的(apply按钮会点亮)

2.生成servlet
(1)src(右击)--->new--->servlet
(2)设置servlet名称
(3)servlet后续配置
方法一:
在类名前加入如下内容
@WebServlet(name = "LoginServlet",urlPatterns = "/LoginServlet")
其中urlPatterns为url访问时设置的链接
方法二:(不推荐)
servlet在web.xml文件中增加如下配置
<servlet>
<servlet-name>ServletTest01</servlet-name>
<servlet-class>ServletTest01</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletTest01</servlet-name>
<url-pattern>/demo/ServletTest01</url-pattern>
</servlet-mapping>
5.重启tomcat, 就可以在http://127.0.0.1:8080/FirstServlet/demo 这个地址看到我们的servlet页面了。
需要注意这个url的路径,FirstServlet是在webapps的目录名,demo是在web.xml中的servlet-mapping中控制的
6.测试利用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; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; @WebServlet(name = "LoginServlet",urlPatterns = "/LoginServlet") public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request,response); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); }
//测试服务器连接通不通 protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); try (PrintWriter out = response.getWriter()) { /* TODO output your page here. You may use following sample code. */ out.println("<!DOCTYPE html>"); out.println("<html>"); out.println("<head>"); out.println("<title>Servlet LoginServlet</title>"); out.println("</head>"); out.println("<body>"); out.println("<h1>Servlet LoginServlet at " + request.getContextPath() + "</h1>"); out.println("</body>"); out.println("</html>"); } } }
利用以下url访问服务器
http://118.25.152.62:8080/MyJavaWebTest02_war/LoginServlet
若成功连接servlet,则会出现如下界面
7.将java web工程达成war包的形式
(1)配置打包方式Artifacts
点击Artifacts选项卡 IDEA会为我们的项目自动创建一个名字叫“csdn:war exploded”的打包方式,如下:
(2)生成war包
<1>build-->build artifacts
<2>点击build即可
<3>生成的war包位置