JavaEE 从入门到放弃(一):Java EE 是个什么东西「建议收藏」

从整体上认识JavaEE,看看JavaEE的主要内容。

大家好,又见面了,我是你们的朋友全栈君。

为什么选择 Java

想必有很多初学者会像我一样,不知选择什么语言入门。在尝试了 C、C++、C#、Python、PHP 后,我决定把 Java作 为第一门深入学习的编程语言。这个路着实有点长…

不过放心,你可以大胆地选择 Java。如果说 C++ 是编程界的曹操,那 Java 就是司马懿,近三十年踏惊涛骇浪如履平地,熬死了无数对手。

诞生之初,Java 饱受争议。而如今,那些受到攻击的弱点一个个被解决甚至反超对手。人们开始惊叹 Java 的生命力,长期以来,Java雄踞编程语言排行榜首位,拥有最多的受众、最大的市场、最活跃的社区。

TIOBE 编程语言排行榜:https://www.tiobe.com/tiobe-index/

就在我写这篇博客的今天(18.07.09),我看到了一则消息,JDK 11中将会引入新的GC(Garbage Collection,垃圾回收)算法 ZGC,能够处理 TB 级别的 HEAP GC,GC 停顿时间不超过10s,意味着,几乎所有的民用场合,都可以用Java来写了,而且可以随心所欲地造对象,不用像以前一样小心翼翼了。

当然,每个时期都有冉冉升起的新星。现在 Python 如日中天,Go 野心勃勃,选择Java 的你,可以选择喝杯茶看它们闹腾了(逃…)

什么是 JavaEE

JavaEE 概念

Java EE,Java 平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为 Jakarta EE(这个名称应该还没有得到群众认可)。狭义的 Java EE 是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件,可以说是一个框架,也可以说是一种规范。

广义的 Java EE 包含各种框架,其中最重要的就是 Spring 全家桶。Spring 诞生之初是为了改进 Java EE 开发的体验,后来逐渐成为了 Java Web 开发的实际标准。后面的文章里,会对 Spring 进行进一步的说明。

JavaEE 与 JavaSE 的区别与联系

JavaEE 是在 JavaSE 的基础上构建的,是对 JavaSE 的扩展,增加了一些更加便捷的应用框架。

除了 EE 和 SE,还有为移动端而生的 JavaME,但目前应用不算广泛。三者的关系可以用下图概括:

JavaSE\EE\ME关系

JavaEE主要技术

JavaEE 号称有十三种核心技术。它们分别是:JDBCJNDIEJB、RMI、ServletJSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF。

简单介绍下需要重点关注的技术。

JDBC

Java 数据库连接,(Java Database Connectivity,JDBC)是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。

JNDI

Java 命名和目录接口(Java Naming and Directory Interface,JNDI),是 Java 的一个目录服务应用程序界面(API),它提供一个目录系统,并将服务名称与对象关联起来,从而使得开发人员在开发过程中可以使用名称来访问对象。

EJB

企业级 JavaBean(Enterprise JavaBean, EJB)是一个用来构筑企业级应用的服务器端可被管理组件。不过这个东西在 Spring 问世后基本凉凉了,知道是什么就行。

Servlet

Servlet(Server Applet),是用 Java 编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。

狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。

JSP

JSP(全称JavaServer Pages)是由 Sun 公司主导创建的一种动态网页技术标准。JSP 部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成 HTML、XML 或其他格式文档的 Web 网页,然后返回给请求者。

JavaEE框架

JavaEE 拥有广泛市场的原因之一就是可以使用多种框架来使开发变得简单。对于框架的选择多种多样,目前比较常见的框架组合SSHSSM。在后面的章节中会作详细介绍。另外Spring本身也提供了多种层次的框架供选择,可以到Spring官网了解详情。

Spring: https://spring.io/

SSH

Structs + Spring + Hibernate

SSM

Spring +SpringMVC + MyBatis

JavaEE 学习路径

一般来讲,初学者应该遵循以下路径

Servlet -> JSP -> Spring -> 组合框架

Servlet 和 JSP 在日后的开发中虽然很少直接应用,但却是各种框架的基础,应该放在开始去了解。这两部分也并不难,相信经过了 JavaSE 的洗礼,只需要进行短期的学习,知道它们都是什么,就可以投入实践中了。

至于上面提到的其它内容,在实践中遇到了再去了解也不妨,现在也只能在一些老旧的应用中看到这些东西了。JDBC 可以稍微重点关注一下,其它的知道有这么个词就差不多啦。

推荐一个学习 Java 的良心网站,里面有 Java 全栈知识,在每个阶段都设置了练习内容,谁用谁知道——

「How2J 的 Java 教程」


这个系列的文章我会逐步更新,主要是希望帮助大家对 Java Web 开发建立一个大概的认识,感兴趣的小伙伴可以戳下面的连接——

JavaEE 从入门到放弃(二):一文读懂 Servlet
JavaEE 从入门到放弃(三):为什么要用 JSP?
JavaEE 从入门到放弃(四):MVC 模式
JavaEE 从入门到放弃(五):如何理解 Spring
JavaEE 从入门到放弃(六):框架的选择
(持续更新中)

另外我用 Vue + Spring Boot 做了一个前后端分离的小项目,并做了一下实践教程,有兴趣的小伙伴可以戳以下链接——

Vue + Spring Boot 项目实战

在学习中遇到问题,或者想与我交流学习经验,可以给我发送邮件,地址是:evan_nightly@163.com

有兴趣听我吹牛扯皮的同学可以关注我的公号,只讲故事,不谈技术。
heihei

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128441.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 武侠世界2-try catch思考

    以前一直不知道trycatch具体应用到什么地方,之前待过的几家公司也看不到有类似的代码。从网上搜来的,描述trycatch优点有下面几点。1、把错误处理和真正的工作分开来;  2、代码更易组织,更清晰,复杂的工作任务更容易实现;  3、毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了;  4、由于C++中的trycatch可以分层嵌套,所以它…

  • pycharm安装教程CSDN_java遇到解决不了的问题

    pycharm安装教程CSDN_java遇到解决不了的问题第三周开始接触python了,结果第一步装pycharm时就遇到了坑,正常安装完成后点运行时出现错误——NoJVMinstallationfound。助教说这是缺少jdk(java程序支持包),需要在网上找个最新的安装并配置下path路径。唉,编程小白,完全不知道这都是些啥o(╥﹏╥)o,于是开始了百度解决问题之路……运行pycharm错误——NoJVMinstallationfoun…

  • 随机梯度下降算法_梯度下降算法的正确步骤

    随机梯度下降算法_梯度下降算法的正确步骤主要内容:提供不同算法的原理以及效果直观展示,并希望读者能够在实际问题中更合理的选用梯度下降类算法。目录:1.简介梯度下降法2.随机梯度下降3.随机梯度下降的问题与挑战4.随机梯度下降的优化算法(主要内容)

  • java怎么输入字符串和一行字符串

    java怎么输入字符串和一行字符串1输入字符串遇到空格或者换行结束Scannersc=newScanner(System.in);Stringstr=newString();str=sc.next();2输入一行字符串,可以包括空格Scannersc=newScanner(System.in);Stringstr=newString();str=sc.nextLine();

  • C++代码算法题:(5).最长回文子串

    C++代码算法题:(5).最长回文子串题目及要求:给你一个字符串s,找到s中最长的回文子串。提示:1<=s.length<=1000s仅由数字和英文字母(大写和/或小写)组成原创代码:classSolution{public:stringlongestPalindrome(strings){intbegin=0;//每个当前子串的开头intend=0;//每个当前子串的末尾intvalue=0;//判断条件使用。条

  • Oracle 时间戳转Date

    Oracle 时间戳转Date当前系统时间向前推一个月selectto_char(add_months(sysdate,-1),’yyyy-mm-ddhh24:mi:ss’)fromdual根据13位毫秒向前推一个月,转换为dateselectto_char(add_months(TO_DATE(TO_CHAR(1564588800000/(1000*60*60*24)+…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号