在阅读本文之前,你一定知道如何用Java语言写出"Hello, World!"了。那么,用Java语言如何写出Web版的"Hello, World!",使之显示在浏览器中呢?本文将一步一步演示如何写出Java Web版的"Hello, World!", 并简单地介绍相关技术。

软件下载与环境搭建

  1. 下载最新版的JDK,安装并配置环境变量。在cmd中运行java -version,输出如下图,则说明安装成功.

  1. 下载Tomcat, 本文使用的是最新稳定版Tomcat 8.5,并解压到任意目录。设置环境变量CATALINA_HOME为Tomcat解压后的目录,该目录中应包含以下文件。

Java代码编写与编译

文件创建

新建文件HelloWorld.java,输入以下内容

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/hello")
public class HelloWorld extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().println("Hello, World!");}@Overridepublic void destroy() {super.destroy();}} 

新建文件web.xml,输入以下内容

<?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"></web-app>

代码编译

java web程序依赖servlet-api, 因此我们在编译的时候需要引入Tomcat的lib目录中的servlet-api.jar。在文件HelloWorld.java的目录运行命令

javac HelloWorld.java -classpath "{CATALINA_HOME}\lib\servlet-api.jar"

,得到编译后的文件HelloWorld.class

配置Tomcat并运行

一个标准的Java Web应用的目录结构如下,其中WEB-INF/web.xml是必需的。

根据上图,我们创建如下的目录结构:

  1. 在任意目录新建文件夹helloword
  2. 将tomcat目录中的conf,logs,temp,webapps,work复制到helloword并删除掉webapps中的所有文件和文件夹。
  3. webapps中新建文件夹ROOT,在ROOT中新建文件夹WEB-INF,在WEB-INF中新建文件夹classes
  4. 将之前创建的文件web.xml复制到WEB-INF目录中,将HelloWorld.class复制到classes目录中。

运行

打开cmd工具,依次运行两个命令
set CATALINA_BASE={helloword的目录}
{CATALINA_HOME}/bin/startup.bat //注意将'{}'替换成具体的路径。

打开浏览器访问http://localhost:8080/hello,应该就可以看到Hello, World!了!

待更新

Hello World -- Java Web版(Java Web 入门教程)相关推荐

  1. 我的世界java版记分板_我的世界基岩版计分板入门教程

    我的世界基岩版怎么创建计分板呢?本期小编为大家带来的是我的世界基岩版计分板入门教程,话不多说,下面就跟着小编一起来看看相关具体内容吧. 万能的第一步,创建一个计分项. 基岩版目前只支持"du ...

  2. java和python自学教程_适合 Java开发者学习的Python 入门教程—文海思创

    原标题:适合 Java开发者学习的Python 入门教程-文海思创 [文海思创讯]在Java文章频道里,我们大部分人应该对该语言都非常的了解,而且在该生态圈内至少已经呆了好几年了.这让我们有常规和专业 ...

  3. 2016 版 Laravel 系列入门教程(一)

    https://www.golaravel.com/post/2016-ban-laravel-xi-lie-ru-men-jiao-cheng-yi/ 2016 版 Laravel 系列入门教程(一 ...

  4. 《2020版JavaScript基础入门教程全集》,助你一臂之力!

    当下,随着5G商用正在有序推进,很多传统的前端工程师并不能满足时下企业用人需求了,越来越多的开发模式以及前端框架不断的涌现出来,这也就要求程序员需要不断去自我增值. 前端要学习的东西很多,对于自学的小 ...

  5. php模拟炒股网站源码,stock 模 拟 炒 股 网 站 源 码(WEB版) WEB(ASP,PHP,...) 251万源代码下载- www.pudn.com...

    文件名称: stock下载  收藏√  [ 5  4  3  2  1 ] 开发工具: ASP 文件大小: 5632 KB 上传时间: 2015-12-11 下载次数: 1 提 供 者: 张小钱 详细 ...

  6. 腾讯Web前端JX框架入门教程(一)

    什么是JX框架 JX框架(Javascript eXtension tools)是模块化的非侵入式Web前端框架,适用于Web Page和Web App项目的开发,特别适合构建和组织大规模.工业级的W ...

  7. Java爬虫代码示例|入门教程 1- 快速爬取百度美图

    文章目录 前言 源码 参考 前言 说起搜索,大家一定对百度不陌生.每个搜索引擎后边都是一个大型爬虫调度系统. 第一篇我们先以百度为例 每天都被它爬,今天我们来爬一下它. 源码 url分析 https: ...

  8. java final 变量 回收_java入门教程-Java中final,finally,finalize三个关键字的区别

    final 当这个关键字修饰一个类时,意味着他不能派生出新的子类,也就是说不能被继承,因此一个类不能被同时声明为abstract和final.当final修饰变量或者方法时,可以保证他们在使用中不会被 ...

  9. Java 8 Lambda表达式官方入门教程(包括Lambda表达式介绍和语法)

    Java8做出了比较大的更新,支持了很多新特性,Java8引入的Lambda表达式这一特性,使Java8支持函数式编程,目前网上有较多的教程,本文整理了来自Oralce官方提供的教程. Lambda表 ...

  10. Java开发工具IntelliJ IDEA入门教程:代码片段和代码折叠

    本文将介绍在IntelliJ IDEA 使用过程中的 代码片段和代码折叠相关内容. IntelliJ IDEA官方正版下载 代码片段 与全局操作系统快捷方式冲突 预定义的键盘映射并不涵盖所有可能的平台 ...

最新文章

  1. Spring MVC学习-------------訪问到静态的文件
  2. leetcode算法题--Group Anagrams
  3. .Net 中 获取当前应用程序启动目录的几个方法和Path.Combine 细节
  4. 一个大型虚拟项目包含位于不同地点的许多干系人_项目管理与人生
  5. 【题解】HAOI2007分割矩阵
  6. 中国的程序员为什么这么辛苦?
  7. mysql5.7zib配置_mysql-5.7.13 解压版安装教程
  8. jQuery 插件使用记录
  9. AR8035 linux
  10. 最优化算法之鲍威尔算法(java)
  11. Visual Studio新特性:串口监视器和Zephyr支持
  12. java 给pdf加水印
  13. 拿下多家主机厂数百万前装定点,禾赛科技激光雷达量产进程加速
  14. c语言,从键盘上输入一个字符,如果是大写字母,转换为小写字母,否则输出
  15. On the burstiness of visual elements
  16. 娃娃乐学拼音软件许可及服务协议
  17. python太极代码_Python turtle绘制阴阳太极图代码解析
  18. html之菜单栏设置
  19. java宠物医院,基于SSM框架的JAVA宠物医院管理信息系统,源码分享
  20. MySQL参数优化:back_log

热门文章

  1. 《Asp.Net 2.0 揭秘》读书笔记(五)
  2. 移植uboot第三步:修改时钟
  3. 前端交接文档_开发型Web前端和设计型Web前端的区别是什么?
  4. P2056 [ZJOI2007]捉迷藏
  5. Swift之高德地图自定义标注弹出气泡样式
  6. ios中通过调试来使用私有api
  7. Beaglebone Back学习七(URAT串口测试)
  8. 如何选择汽车LiDAR的激光器和光电探测器
  9. 灰度图像--图像增强 双边滤波 Bilateral Filtering
  10. 图像分析:二值图像连通域标记