Fork me on GitHub

使用 idea 创建 JavaWeb 项目

最近在复习 Java Web 的知识,以前学的时候使用的是 Ecplise, 现在使用 Idea,所以在此记录一下如果使用Idea 创建 Java Web 项目,已经常见问题的解决方案

创建 Java Web 项目

  • 对于已经打开 IDEA 的同学来说,采用下面的操作流程

    File –> New –> Project…

  • 对于没有打开项目的同学,采用下面的操作流程

    ​ 点击 Create New Project

开始创建项目

创建好的文件结构如下:

配置 Java Web项目

创建 classes 和 lib 文件夹,创建位置如下图所示

配置 Project Structure ,操作流程如下

  1. File –> Project Structure…,
    1. 进入 Project Structure窗口
    2. 点击 Modules –> 选中项目“Java-Web-demo” –> 切换到 Paths 选项卡 –> 勾选 “Use module compile output path”,将 “Output path” 和 “Test output path” 都改为之前创建的classes目录

配置放入的 lib 的 Jar

点击 Modules –> 选中项目“Java-Web-demo” –> 切换到 Dependencies 选项卡 –> 点击下边的“+”,选择 “JARs or directories…”,选择创建的lib目录

配置打包方式Artifacts

点击 Artifacts选项卡,IDEA会为该项目自动创建一个名为“JavaWeb:war exploded”的打包方式,表示 打包成war包,并且是文件展开性的,输出路径为当前项目下的 out 文件夹,保持默认即可。勾选“Show content of elements”,表示显示详细的内容列表。

配置 Tomcat

  1. Run -> Edit Configurations,进入“Run Configurations”窗口,点击”+”-> Tomcat Server -> Local,创建一个新的Tomcat容器
    1. 在”Name”处输入新的服务名,点击“Application server”后面的“Configure…”,弹出Tomcat Server窗口,选择本地安装的Tomcat目录 -> OK
    2. 在“Run Configurations”窗口的“Server”选项板中,去掉勾选“After launch”,设置“HTTP port”、“JMX port”、”VM options“,点击 Apply -> OK,至此Tomcat配置完成。


JavaWeb测试

  • 打开 index.jsp,写下下面语句
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%--
Created by IntelliJ IDEA.
User: gclm
Date: 2019-02-20
Time: 15:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Java Web 测试项目</title>
</head>
<body>
<%--$END$--%>
<h1>Hello Wrold!!!!</h1>
</body>
</html>
  • 启动 Tomcat
  1. Run -> Edit Configurations,进入“Run Configurations”窗口,选择之前配置好的Tomcat,点击“Deployment”选项卡,点击“+” -> “Artifact”-> 选择创建的web项目的Artifact…修改“Application context”-> Apply -> OK

说明:此处的Application context是指定本工程的根目录

4.2 在index.jsp文件中的body之间添加要显示的内容,然后点击“运行”的绿色三角
打开浏览器,输入:localhost:8080

Servlet 编写与配置

  • 编写 Servlet

    创建 HelloServlet 文件继承 HttpServlet

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    package club.gclmit.servlet;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.util.Date;

    /**
    * Copyright (C), 2016-2018, 孤城落寞的博客
    *
    * @program: club.gclmit.servlet
    * @author: gclm
    * @date: 2019-02-20 15:22
    * @description:
    */
    public class HelloServlet extends HttpServlet {

    String message = null;
    @Override
    public void init() throws ServletException {
    System.out.println("XXXXX 开始初始化 Servlet");
    message = "Hello Servlet,这是我的第一个Servlet 程序";
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("Servlet 开始执行 Get 请求!!!!");
    /**
    * 设置请求头,告诉浏览器响应的内容是用 UTF-8 编码的 Html
    *
    */
    response.setHeader("Content-type","text/html;charset=UTF-8");
    /**
    * 告诉 Servlet 用UTF-8编码。而不是默认的 IS08859
    */
    response.setCharacterEncoding("UTF-8");
    /**
    * 告诉 Servlet 返回的内容是 Html
    */
    response.setContentType("text/html");
    response.getWriter().println("<h1>"+message+"</h1>");
    response.getWriter().println(new Date().getTime());
    System.out.println("Servlet 响应数据完成!!!!");
    }

    @Override
    public void destroy() {
    super.destroy();
    System.out.println("开始销毁 Servlet");
    }
    }
  • 配置 Servlet,下面两种方法任选其一。

    • 方法一:在WEB-INF目录下web.xml文件的标签中添加如下内容:

    img

    • 方法二:在HelloServlet文件的类前面加上:@WebServlet(“/hello”)

    img

  • 运行servlet

    点击运行按钮

  • 运行效果

常见问题

1. 控制台乱码

解决方案:

右上角 Edit Configurations的 VM options处添加 -Dfile.encoding=UTF-8

2. HttpServletResponse输出的中文乱码问题

解决方案: 看我另外一篇博客

3. org.apache.tomcat.util.descriptor.web.WebXml.setVersion Unknown version string [4.0]

解决方案: 看我另外一篇博客

本文标题:使用 idea 创建 JavaWeb 项目

文章作者:孤城落寞

发布时间:2019年02月20日 - 16:11:21

最后更新:2019年02月27日 - 21:05:01

原始链接:https://blog.gclmit.club/archives/dcbd99d.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。



-------------本文结束 感谢您的阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!