java ee 程序_第一个 JavaEE 应用程序 - JavaWeb 入门开发教程
第一个 JavaEE 应用程序
JavaEE 是 Java Web 开发当中事实上的标准,诸多框架也都是建立在 JavaEE 的 API 基础之上的。为了从头理解 Java Web 开发,我们将从一个最简单的 JavaEE Servlet 应用开始,一步一步进入 Java Web 开发的世界。
准备工作
要完成这个教程,你只需要有网络就可以了,首先下载 IntelliJ IDEA Community 版。没错,我们就是故意要使用 Community 版,尽管 Utimate 版对 JavaEE 开发的支持更好,但是更好的工具却可能让我们忽略底层的细节。Community 版对于入门来说已经足够。
然后你需要下载 JavaSE 的 JDK,也就是大家使用最多的 JDK 版本。示例使用的 1.8.0 版本。
最后你需要一个 Servlet Container,去 Tomcat 网站下载一个版本,主要要和 JDK 的版本要求相匹配。示例使用的是 Tomcat 8.5.0。
第一个 Servlet
首先创建一个工程,选择好 JDK 版本,一路 Next 就可以了。创建好工程之后,我们创建一个新的 Servlet。首先在左边的 src 上右键创建一个 package,然后在 package 上右键,创建一个 Java Class:
package com.skyline;
import javax.servlet.*;
import java.io.IOException;
import java.io.PrintWriter;
public class MyFirstServlet implements Servlet {
public void init(ServletConfig config) throws ServletException {
System.out.println("Init");
}
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
System.out.println("From service");
PrintWriter out = response.getWriter();
out.println("Hello, Java Web.");
}
public void destroy() {
System.out.println("Destroy");
}
public String getServletInfo() {
return null;
}
public ServletConfig getServletConfig() {
return null;
}
}
这时候代码上会报很多错误,核心原因是 javax.servlet 这个包找不到。前面提的过 Servlet API 是包含在 JavaEE 当中的。为了方便,我们直接使用 Tomcat 附带的 servlet-api.jar 包。
在 IDEA 中打开 Library Settings(External Libraries 下面的任意一项右键 -> Open Library Settings。
加入依赖有两种办法。一种是在 Classpath 中加入 servlet-api.jar,这个 Classpath 会影响所有使用该 JDK 的工程(不只是当前工程):
另一种办法是只给当前工程添加依赖,在左侧选择 Modules,在 Dependencies 中加入所需依赖的路径:
为了避免对别的工程产生影响,推荐使用后一种方式添加依赖。
添加依赖完成之后,这时工程应该可以正常通过编译了。
部署
为了让 Servlet 跑起来,我们需要把它部署到 Tomcat 上。首先在 src 目录隔壁,创建一个 WEB-INF 目录(注意名字一定要正确),然后在里面创建一个 web.xml 文件:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
MyFirstServletName
com.skyline.MyFirstServlet
MyFirstServletName
/hello
可以看到 web.xml 的作用是告诉 Tomcat,我们想使用哪个 Servlet 来处理对应的请求。Tomcat 通过 web.xml 找到对应的 Servlet 完成请求以及响应过程。
下面是具体的部署过程。首先找到 Tomcat 的目录,其中有一个 webapps 文件夹,在里面创建一个新的 MyFirstServlet 文件夹,然后把整个 WEB-INF 文件夹拷贝过去,此时的目录结构应该是这样的:
webapps
- MyFirstServlet
- WEB-INF
- web.xml
下一步,将 IDEA 编译出的产物(默认应该在 out 文件夹中),把 package 结构已经对应的产物拷贝到 WEB-INF 中的 classes 文件夹里,完成之后的目录结构应该是这样的:
webapps
- MyFirstServlet
- WEB-INF
- classes
- com
- skyline
- MyFirstServlet.class
- web.xml
运行
完成部署工作之后,需要启动 Tomcat 服务器。找到 Tomcat 目录中的 bin 文件夹,使用 cmd 运行其中的 startup.bat。如果提示没有设置 JAVA_HOME 或 JRE_HOME,需要到环境变量中设置一下。完成设置之后,Tomcat 应该可以正常启动。
java ee 程序_第一个 JavaEE 应用程序 - JavaWeb 入门开发教程相关推荐
- python写一个完整的小程序_写一个python小程序
在windows环境下进行操作 window+R 输入cmd 创建一个文件夹 mkdir pytxt 创建一个py文件 py.py 用notepad或者记事本等工具进行编辑 或 首先声明pytho ...
- Linux下 Qt界面程序嵌入另一个Qt界面程序_Qt应用嵌入外部进程窗口
项目工程的实现,想要使用多个程序进行实现,在里面存在一定的调用的过程:调查的情况如下 Qt界面程序嵌入另一个Qt界面程序[Linux] Qt界面程序嵌入另一个Qt界面程序[Linux]_ptc321的 ...
- 候选人选票程序:设计一个候选人选票程序。假设有3个候选人,在屏幕上输入要选择的候选人姓名,有10个人进行投票,最后输出每个人的得票结果。
候选人选票程序:设计一个候选人选票程序.假设有3个候选人,在屏幕上输入要选择的候选人姓名,有10个人进行投票,最后输出每个人的得票结果. 声明结构体类型并定义结构体变量.代码如下: struct ca ...
- java ee最新_从此再无 JavaEE,现在叫 JakartaEE
各位小伙伴,你们都知道这个消息吗? Java EE 正式改名为 Jakarta EE 了. 以后小伙伴们自我介绍的时候 又多了一种方式. ("'▽'") :你是做什么的?( ̄▽ ̄) ...
- java ee论文_基于JavaEE的项目管理系统毕业论文.doc
基于JavaEE的项目管理系统毕业论文 基于JavaEE的项目管理系统的设计与实现 摘 要 企业项目管理系统是为了使企业项目能够按照预定的成本.进度.质量顺利完成,而对人员.产品.过程和项目进行分析和 ...
- A002、java环境搭建_第一个java程序
目录 1.内容介绍 2.软件开发概述 2.1 软件开发概念 2.2 软件开发示例 2.3 软件开发语言 2.3.1 计算机语言概述 2.3.2 计算机语言分类 2.4 小结 3.Java概述 3.1 ...
- Java编写学生类student程序_编写一个JAVA程序片断定义一个表示学生的类student.docx...
编写一个JAVA程序片断 定义一个表示学生的类student,包括域"学号","班级","姓名","性别"," ...
- java程序员拜年代码_作为一个资深的程序员我们应该这么拜年
作为一个资深的程序员我们应该这么拜年,瞬间高大上! C:printf("祝大家新年快乐"); C++ : cout< QBasic : Print "祝大家新年快乐 ...
- 精通C语言Java怎么样_作为一个优秀的程序员,真的需要精通C语言吗?
从事嵌入式开发多年,使用C语言开发已经超过十个年头,除了C语言还用C++,java,python做过项目,程序员的优秀编程语言仅仅占据一部分,而且也不会只是针对C语言,现在很多的编程高手也不懂的C语言 ...
最新文章
- 详解OpenCV卷积滤波之边缘处理与锚定输出
- ruby gsub gsub! chomp chomp! 以及所有类似函数用法及区别
- 你知道面试必问的AOP吗(1),2021吊打面试官系列
- 云计算机玩大型游戏,云游戏实测点评:大部分都可以顺畅玩耍
- C++静态成员和静态成员函数
- LeetCode 1009. 十进制整数的反码(位运算)
- 经典案例获取数组里的对象是否匹配
- 图解Http学习第三章
- web安全day33:人人都要懂的LNMP--nginx的配置和文件理解
- 计算机二级excel经典操作题,计算机二级office经典题库
- 华为交换机Console口密码重置及配置
- Win10环境下VMware安装Mac OS虚拟机并在虚拟机中安装xcode
- 探索性测试的分类与测试用例
- linux富文本软件,CherryTree(技术人员专用富文本笔记软件)
- 深度学习敲门砖——神经网络
- 华为防火墙简介及其工作原理
- 前苏联切尔诺贝利辐射禁区拍摄到野生水獭吞食鱼
- 政务智能办体验升级、乳腺癌创新药加速研发,飞桨和文心大模型驱动应用智能涌现...
- 手把手教你快速搭建私服环境
- 主流的6个Go语言Web框架
热门文章
- 显示隐藏-visibility(HTML、CSS)
- opencv之CmakeLists.txt配置
- java重定向并保持同一个会话_当会话在Java Web应用程序中过期时,如何重定向到登录页面?...
- 【spring boot】启动类启动 错误: 找不到或无法加载主类 com.codingapi.tm.TxManagerApplication 的解决方案...
- TestNG介绍 - 1
- Java大数据-Week2-Day3面向对象高级
- 苹果将投资10亿美元扩容位于美国雷诺的数据中心
- 一年前我在知乎上提了个愚蠢的问题:如何入门 Linux ?
- JavaScript数组快速入门
- Swift语言精要 - Dictionary(字典)