Mac版 IntelliJ IDEA 创建Web项目并部署servlet

  • 文/一月筠 -- 转载请注明 --

创建一个web项目

  • File -> New Project -> 选择Project SDK为1.8 -> Next

新建一个web项目

  • Project name中输入项目名称“Demos” ,Project location选择项目要存放的位置,可以默认 ->Finish

输入项目名称

创建一个Module

  • 鼠标点中项目名称demos -> 右键选择New,选择Module
    新建一个Module

  • 勾选Web Application-> 确认已勾选Create web.xml

勾选Web Application

  • 输入Module名称firstweb-> 点击Finish

输入Module名称

新建完成的web项目

新建完web项目后的提示

新建完成后的目录结构

新建完成后的web项目

web/WEB-INF下创建两个文件夹:classeslib

classes用来存放编译后输出的class文件,lib用于存放第三方jar包。

在web:WEB-INF下创建两个文件夹

配置文件夹路径

  • File -> Project Structure (快捷键:cmd + ;) -> 选择Module
    选择Paths -> 选择Use module compile output path -> 将Output pathTest output path都选择刚刚创建的classes文件夹。

选择刚刚创建的classes文件夹

  • 接着选择Dependencies -> 将Module SDK选择为1.8 -> 点击下面的“+”号 -> 选择1 Jars or Directories

选择Jars or Directories

  • 选择刚刚创建的lib文件夹

选择刚刚创建的lib文件夹

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

选择jar directory

配置Tomcat容器

  • 打开菜单Run -> 选择Edit Configuration

配置Tomcat容器

  • 点击“+”号 -> 选择Tomcat Server -> 选择Local

选择Local

  • 点击Application server后面的Configure…,弹出Tomcat Server窗口,选择本地安装的Tomcat目录 -> OK

弹出Tomcat Server窗口.png

  • Run/Debug Configurations窗口的Server选项板中,取消勾选After launch,设置HTTP portJMX port(默认值即可),点击 Apply -> OK, 至此Tomcat配置完成。

至此Tomcat配置完成

在Tomcat中部署并运行项目

  • Run ->Edit Configurations,进入Run/Debug Configurations窗口 -> 选择刚刚建立的Tomcat容器 -> 选择Deployment -> 点击下面的“+”号 -> 选择Artifact

选择Artifact

  • 选择web项目 -> Application context可以填/hello(其实也可以不填的~~) -> OK

Application context填hello

编辑index.jsp文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%--
Created by IntelliJ IDEA.
User: guoyanjun
Date: 2017/5/26
Time: 下午2:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>这是第一个web项目</title>
</head>
<body>
<p>hello world</p>
<p>第一个项目运行成功啦!</p>
</body>
</html>

编辑index.jsp文件

运行Tomcat,在浏览器中查看运行结果

运行Tomcat

Servlet简单实现

  • 编写servlet源文件
  • 在src目录下新建HelloWorld.Java,并编写一下代码并进行编译:
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
/**
* Created by guoyanjun on 2017/5/26.
*/
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.io.PrintWriter;
public class HelloWorld extends HttpServlet {
private String message;
@Override
public void init()throws ServletException {
message = "Hello World, This message is from Servlet!";
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置响应内容类型
resp.setContentType("text/html");
//设置逻辑实现
PrintWriter out = resp.getWriter();
out.println("<h3>" + message + "</h3>");
}

@Override
public void destroy() {
super.destroy();
}
}
  • 编译后会发现在classes目录下生成了HelloWorld.class文件

IDEA创建servlet时找不到import javax.servlet...相关类包的问题

在IDEA中,创建Servlet时候,当写入如下语句时:

1
2
3
4
5
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
  • 会提示你,程序包javax.servlet和程序包javax.servlet.http不存在的错误
    原因在于Java编译器没有找到软件包javax.servelt
  • 解决的方法:把tomcat安装包里的lib目录下的servlet-api.jar拷贝一份到工程文件夹下的web目录下的WEB-INF目录下lib子文件下的,即 web—>WEB-INF–lib

HelloWorld.class文件

部署servlet

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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_3_1.xsd"
version="3.1">
<servlet>
<servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>
</web-app>

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

  • 运行servlet

点击运行按钮
运行成功

servlet运行状态