热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javaee程序_第一个JavaEE应用程序JavaWeb入门开发教程

第一个JavaEE应用程序JavaEE是JavaWeb开发当中事实上的标准,诸多框架也都是建立在JavaEE的API基础之上的。为了从头理解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 的工程(不只是当前工程):

a423861a00644e4375dcae45bd0d4c8f.png

另一种办法是只给当前工程添加依赖,在左侧选择 Modules,在 Dependencies 中加入所需依赖的路径:

1edb97a6e1425cdab98c41cd40f1a0fe.png

为了避免对别的工程产生影响,推荐使用后一种方式添加依赖。

添加依赖完成之后,这时工程应该可以正常通过编译了。

部署

为了让 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 应该可以正常启动。

41b05ca17c79d2ac7a2e26b5d96408d8.png



推荐阅读
  • spring boot使用jetty无法启动 ... [详细]
  • 本文介绍了Tomcat的基本操作,包括启动、关闭及首次访问的方法,并详细讲解了如何在IDEA中创建Web项目,配置Servlet及其映射,以及如何将项目部署到Tomcat。 ... [详细]
  • 本文详细介绍了如何使用C#实现不同类型的系统服务账户(如Windows服务、计划任务和IIS应用池)的密码重置方法。 ... [详细]
  • Spring Security基础配置详解
    本文详细介绍了Spring Security的基础配置方法,包括如何搭建Maven多模块工程以及具体的安全配置步骤,帮助开发者更好地理解和应用这一强大的安全框架。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 深入理解线程池及其基本实现
    本文探讨了线程池的概念、优势及其在Java中的应用。通过实例分析不同类型的线程池,并指导如何构建一个简易的线程池。 ... [详细]
  • [附源码]计算机毕业设计JAVAjsp医药管理信息系统
    [附源码]计算机毕业设计JAVAjsp医药管理信息系统项目运行环境配置:Jdk1.8Tomcat7.0MysqlHBuilderX(Webstor ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • MITM(中间人攻击)原理及防范初探(二)
    上一篇文章MITM(中间人攻击)原理及防范初探(一)给大家介绍了利用ettercap进行arp欺骗及劫持明文口令,后来我发现好友rootoorotor的文章介绍比我写的更透彻,所以基础利用大家可以参看 ... [详细]
  • 为何Compose与Swarm之后仍有Kubernetes的诞生?
    探讨在已有Compose和Swarm的情况下,Kubernetes是如何以其独特的设计理念和技术优势脱颖而出,成为容器编排领域的领航者。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
author-avatar
qr筱然陋室
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有