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>

全部评论

相关推荐

07-25 11:26
清华大学 Java
打开电脑,思绪又回到了7月份刚开始的时候,感觉这个月过的如梦如幻,发生了太多事,也算是丰富了我本就是平淡的人生吧太早独立的我习惯了一切都是自己做决定,拥有绝对的决定权,而且永远不会听取别人的建议。我就是那个恋爱四年出轨的男主啦,感觉既然在牛客开了这个头,那我就要做个有始有终的人。从我出轨到结束再到和女朋友和好如初真的太像一场梦了,短短的一个月我经历了太多,也成长了很多,放下了那些本就不属于我的,找回了那些我不该放弃的。我的人生丰富且多彩,但人不能一直顺,上天总会让你的生活中出点乱子,有好有坏,让你学会一些东西,让你有成长。我和女朋友的恋爱四年太过于平淡,日常除了会制造一些小浪漫之外,我们的生活...
段哥亡命职场:不得不说,我是理解你的,你能发出来足见你是个坦诚的人,至少敢于直面自己的内心和过往的过错。 这个世界没有想象中那样非黑即白,无论是农村还是城市,在看不见的阴影里,多的是这样的事。 更多的人选择站在制高点去谩骂,一方面是社会的道德是需要制高点的,另一方面,很多人不经他人苦,却劝他人善。 大部分的我们,连自己生命的意义尚且不能明晰,道德、法律、困境,众多因果交织,人会迷失在其中,只有真的走出来之后才能看明白,可是没走出来的时候呢?谁又能保证自己能走的好,走的对呢? 可是这种问题有些人是遇不到的,不去追寻,不去探寻,也就没了这些烦恼,我总说人生的意义在过程里,没了目标也就没了过程。 限于篇幅,没法完全言明,总之,这世界是个巨大的草台班子,没什么过不去了,勇敢面对,革故鼎新才是正确,祝你早日走出来。查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务