IntelliJ Idea 创建第一个 Servlet 项目

本文主要根据Intellij Idea 创建Web项目并部署servletJavaWeb开发 - 使用IDEA创建Servlet程序两篇文章。

一开始入手 JavaWeb、Tomcat 还是有一点点迷茫的,因为自己还没有太多的接触过有关的网络编程,不过学习编程早已习惯了一开始的无从下手,不用怕,找路就是了。本文记录的是使用 IntelliJ Idea 2017.3.2编写第一个 JavaWeb 项目,并部署Servlet,用到了 Tomcat。(一开始学习还不知道这个具体来做什么的)

1. 创建一个web项目

image

我们创建好后文件工程结构目标如下:(图片来源于网络)
image

但我使用IntelliJ Idea 2017.3.2创建好后,却没有 WEB-INF 文件夹和 web.xml 文件,这时就要自己配置添加web.xml

步骤:

  1. 打开 Project Structure, ( File -> Project Structure, 快捷键 Ctrl+Shift+Alt+S. 也可以右击项目,有个 Open Module Settings, 快捷键 F4. )

  2. 在 Facets 中选中次级的 Web 或者在 Modules 中选中Web,在 Deployment Descriptors 面板里,点击 + 号选择 web.xml 以及版本号。然后在弹出的对话框中修改 xml 默认的目录,加上 web 就可以了。
    image
  3. 完成。
    image

    (classes和lib是后边设置的)

2. Web 工程设置

创建classeslib目录

  1. 在WEB-INF 目录下点击右键,New --> Directory,创建 classes 和 lib 两个目录 。classes目录用于存放编译后的class文件,lib用于存放依赖的jar包

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

    image
    即将后面编译的class文件默认生成到classes目录下

  3. lib目录配置
    还是在这个Project Structure这个窗口。点击 Modules --> 选中项目“JavaWeb” --> 切换到 Dependencies 选项卡 --> 点击右边的“+”,选择 “JARs or directories...”,选择创建的lib目录。

配置打包方式Artifacts

点击 Artifacts选项卡,IDEA会为该项目自动创建一个名为“JavaWeb:war exploded”的打包方式,表示 打包成war包,并且是文件展开性的,输出路径为当前项目下的 out 文件夹,保持默认即可。另外勾选下“Build on make”"Include in project build"(虽然不知道是干啥用的,但按照他的意思勾上吧),表示编译的时候就打包部署,勾选“Show content of elements”,表示显示详细的内容列表。

image

3. Tomcat 配置

创建 Tomcat 容器

  1. 打开菜单Run -> 选择Edit Configuration
    image
  2. 点击“+”号 -> 选择“Tomcat Server” -> 选择“Local”
    image
  3. 点击 "Application server" 后面的 "Configure...", 弹出Tomcat Servers 窗口,选择本地安装的 Tomcat 目录, 比如我的是"G:\Tomcat\apache-tomcat-9.0.10", 即 bin 文件夹所在的目录。 点击OK。

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

  5. 点击Deployment -> 选择刚刚建立的 Tomcat 容器 -> 选择 Deployment -> 点击右边的 “+” 号 -> 选择 Artifact-> 选择 web 项目 -> Application context 可以填 “/HelloWorld”(其实也可以不填的~~) -> OK .
    image

4. 编辑 index.jsp文件

image

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

点击绿色按钮,在浏览器地址栏软入 localhost:8080/HelloWorld (HelloWorld为刚刚设置的地址),查看结果。
image

6. Servlet简单实现

编写Servlet源文件

在 src 目录下新建 HelloWorld.java,并编写一下代码并进行编译:

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 {
 @Override
 public void init() throws ServletException {
​
 }
​
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
 resp.setContentType("text/html");
​
 PrintWriter out = resp.getWriter();
 out.println("<h1>Hello,world!</h1>");
 }
​
 @Override
 public void destroy() {
 super.destroy();
 }
}

因为是第一次编写 Servlet 代码,没有过经验,所以可能要导入下 J2EE 库, Idea 蛮智能的,跟着它的引导走就好了。

编译后会发现在 classes 目录下生成了 HelloWorld.class 文件。
image

7. 部署 Servlet

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

<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></pre>

其中 <url-pattern>为访问网址的地址。

方法二:在 HelloWorld 文件的类前面加上:

@WebServlet(name = "HelloWorld", urlPatterns = "/my")

运行 Servlet

image

点击运行, 控制台出现 successfully 则 tomcat 服务启动成功!打开浏览器输入:localhost:8080/HelloWorld/HelloWorld 即可查看 servlet 运行状态了。

image

更新后点击运行四个按钮

image

四个按钮的区别待更新。

<p align="right">2018年7月2日</p>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,780评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,424评论 1 305
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,397评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,576评论 0 218
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,997评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,945评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,107评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,850评论 0 208
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,625评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,804评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,285评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,613评论 3 261
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,291评论 3 242
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,164评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,963评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,096评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,886评论 2 278

推荐阅读更多精彩内容