上一篇博文介绍了如何将 Visual Studio Code 作为 Java 的开发环境。我们知道,Java Web 开发是 Java 开发的主战场,那么在 VS Code 中开发 Java Web 体验如何?有哪些要点呢?本文就带着大家体验一下,重点是 Tomcat 的使用。

创建 Maven Project

打开 VS Code,Ctrl + Shift + P 打开命令栏,按照下面的操作创建一个 Maven 项目,Archetype 类型选择 maven-archetype-webapp:

VS Code 默认在保存的时候创建项目文件夹,也就是刚才输入的 simpleservlet,我们需要用 VS Code 打开 simpleservlet 文件夹,这样 VS Code 正好以 simpleservlet 目录为基础,是一个完整 Java Web 项目文件结构。在 pom.xml 文件中添加三个依赖:

<!-- Servlet -->
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.0.1</version><scope>provided</scope>
</dependency><!-- JSP -->
<dependency><groupId>javax.servlet.jsp</groupId><artifactId>jsp-api</artifactId><version>2.2</version><scope>provided</scope>
</dependency><!-- JSTL -->
<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version><scope>runtime</scope>
</dependency>

说明:因为程序在运行时需要 Tomcat web 服务器,Tomcat 包含 servlet 和 jsp 的相关 jar 包,所以将 Servlet 和 JSP 依赖的 scope 设置为 provided,这样打包时就不包括。JSTL 依赖的用于 JSP 页面的 EL 表达式。

maven-archetype-web 模板没有创建 src/main/java 文件夹,这个不是什么大问题,手工创建即可:

在 java 文件夹下新建 com/stonewang 文件夹 (对应 package: com.stonewang ),在 stonewang 文件夹下新建一个 HelloServlet.java 的文件,HelloServlet 被自动识别为 Java Class,代码编辑区中,顶部自动添加了 package:


文件夹显示的方式有一点奇怪,为什么不将 src/main/java 显示在一起?IDEA 中可以显示将 src/main/java 设置为 Source Root,但 VS Code 没有找到对应的可以设置的地方。下图为 IDEA Community 的显示,大家对比一下。

但在 VS Code 左侧面板中,有一个 Java Project 区域,打开后能清晰的显示 Java 的项目结构 :

编写 Servlet 的代码

将 HelloServlet 继承自类 HttpServlet,并覆盖 (Override) 父类的 doGet() 方法。VS Code 在这里提供了不错的体验。


为 HelloServlet 添加一个 WebServlet 注解,完成后 HelloServlet 的代码如下:

package com.stonewang;// 省略 Import@WebServlet("/time")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {DateFormat dtFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String currentTime = dtFormat.format(new Date());req.setAttribute("currentTime", currentTime);req.getRequestDispatcher("/WEB-INF/jsp/hello.jsp").forward(req, resp);}
}

编写 JSP 代码

HelloServlet 的 doGet() 方法重定向到 hello.jsp,需要新建 hello.jsp 文件,在 WEB-INF/jsp 目录下面:

这里注意两个细节,一是 ${} 为 EL 表达式,在 pom.xml 中需要引入 JSTL 依赖,二是 page 指令中需要将 isELIgnored 属性设为 false,因为默认值为 true,EL 表达式的就不会显示。为了能够正确显示, 根据个人测试,web.xml 中的版本约束到 3.0 以上也是可以的。我对模板提供的 web.xml 进行了修改:

Tomcat 服务器

Tomcat for Maven 插件

Java Web 的运行需要 Web Server 支持,我们使用 Tomcat 服务器。有两种方法。第一种方法是在 Maven 项目中添加 tomcat for maven 插件。这个插件最新版是 2.2,貌似多年没有更新过。tomcat for Maven 在 pom 文件的 build 部分。

测试项目的运行:

在浏览器中输入 http://localhost:8080/simpleservlet/time:


我们也可以在 Terminal 窗口中输入 mvn tomcat7:run 来运行:

Tomcat for Java 插件

在 VS Code 中安装 Tomcat for Java 插件:


安装之后,左侧多了一个 Tomcat Servers 区域,点击 + 号关联本机的 Tomcat Server:

加载之后,关联的 tomcat server 显示如下:

可以选中该tomcat server,右键,启动或停止,启动后显示为绿色。运行的方法,首先运行 Maven package 命令,生成 war 包,选中 Target 目录下的 war 包,右键运行或者调试。可以不用提前启动 Tomcat。

Tomcat 安装和配置

在官网下载适合操作系统的 Tomcat,解压。本机需要先配置 JRE_HOME 或者 JAVA_HOME 环境变量。再配置 CATALINA_HOME环境变量,该目录为 tomcat 的根目录,然后将 CATALINA_HOME 环境变量加到 PATH 环境变量中。配置 Tomcat 是很基础的东西,网上很多文章。

安装 Tomcat 常常会碰到两个错误,一个是启动的时候一闪而过。此时,可以先打开 command 命令窗口,在窗口中运行 Startup,控制台中就会显示错误的原因。最常见的是没有配置 JRE_HOME 或者 CATALINA_HOME 环境变量;第二个常见的错误就是启动控制台显示乱码,原因是 Tomcat 默认的字符集为 utf-8,但控制台显示的字符集为 GBK。可以在注册表中添加一个作用于 tomcat 的配置。将 CodePage 设为十进制的 65001,然后重启 Tomcat。

在 Visual Studio Code 中体验 Java Web 开发相关推荐

  1. java代码如何与界面联系在一起_如何在Visual Studio Code 中编写Java代码

    本文将展示如何在Visual Studio Code中用Java编写和运行一个简单的Hello World程序. 首先您必须在本地开发环境中安装Java SE开发工具包(JDK) Visual Stu ...

  2. Visual Studio Code中文文档(一)-快速入门

    Visual Studio Code是一个轻量级但是十分强大的源代码编辑器,重要的是它在Windows, OS X 和Linux操作系统的桌面上均可运行.Visual Studio Code内置了对J ...

  3. 在Visual Studio Code中查找并​​替换为换行符

    本文翻译自:Find and replace with a newline in Visual Studio Code I am trying out the new Microsoft Visual ...

  4. vscode 注释多行代码_如何在Visual Studio Code中注释多行?

    我找不到在Visual Studio Code中注释和取消注释多行代码的方法. 是否可以使用某些快捷方式在Visual Studio Code中注释和取消注释多行? 如果是,该怎么办? 当其中一行已被 ...

  5. 在 Visual Studio Code 中添加自定义的代码片段

    无论是那个编辑器,如果能够添加一些自定义代码片段,能够大大提升代码的输入效率. 本文介绍如何在 Visual Studio Code 中添加自定义代码片段. 本文内容 Visual Studio Co ...

  6. 在Visual Studio Code 中配置Python 中文乱码问题

    在Visual Studio Code 中配置Python 中文乱码问题 方法一:直接代码修改字符集 添加前四行代码 import io import sys #改变标准输出的默认编码 sys.std ...

  7. Visual Studio Code 中部分代码变黑白色(前端vue-element-admin项目测试有效)

    @[TOC](Visual Studio Code 中部分代码变黑白色(前端vue-element-admin项目测试有效)) 代码变黑白色 使用vue-element-admin 后台模板在Visu ...

  8. 在 Visual Studio Code 中使用 Vue

    Vue.js是一个流行的 JavaScript 库,用于构建 Web 应用程序用户界面,Visual Studio Code 内置了对HTML.CSS和JavaScript的 Vue.js 构建块的支 ...

  9. 如何在Visual Studio Code中编译C ++代码

    PS: This was published on my Blog here. PS:这已发布在我的Blog 此处 . C++ is a statically-typed, free-form, (u ...

最新文章

  1. Blender 3.0基础入门学习教程 Introduction to Blender 3.0
  2. 解决导入的maven聚合工程中子模块项目不显示
  3. java 变成题_Java 习题8 参考答案及解析
  4. CCIE-LAB-第十篇-BGP-VPNV4+VNPN6+MPLS+关闭TTL
  5. python之虚拟环境
  6. 思科虚拟机配置dhpc服务器,思科模拟器配置DHCP
  7. ASP.NET-第一天-数据库知识
  8. delphi 异步 调用 带参数_Dubbo 关于同步/异步调用的几种方式
  9. Javascript多叉树的递归遍历和非递归遍历
  10. Windows小技巧 -- Win+R提高Windows使用效率
  11. 高中计算机教育类文章,高中信息技术的教学论文
  12. Android 智能语音相关知识-PCM设备
  13. 斯科特.H.杨:MIT 课程挑战者 __转
  14. Pegasus 在 Apache Conf 上的分享
  15. 周志华《机器学习》习题1.2
  16. tomcat HTTP与HTTPS同时开启并且同时可以访问
  17. 微信小游戏|unity搭建3D篮球小游戏场景
  18. 家乡,属于梦的记忆140
  19. 学习笔记(41):决胜AI-深度学习系列实战150讲-完成预测分类任务
  20. IDEA使用MyBatis【超级详细,绝对能运行】

热门文章

  1. 连接mysql数据库字符串_MySQL数据库中怎么将字符串连接操作
  2. 写代码神器!笔记本追剧办公贼爽,包邮送一台!
  3. APIApace 将图片转换成素描画API
  4. 2022起重机械指挥上岗证题目模拟考试平台操作
  5. 华为高速公路视频云联网解決方案
  6. 后缀数组 java_Java后缀数组-求sa数组
  7. kepserver介绍及见解
  8. R语言使用cox函数构建生存分析回归模型、使用subgroupAnalysis进行亚组分析并可视化森林图
  9. SAP Commerce Cloud 里的 User 模型和 Restriction 的关系
  10. vmware虚拟机打开ios镜像及vmdk镜像的方式