J2那几个E和Web基础

简介: 看来上一篇写的讲的时候是用不上了。但是《极限编程》里提到的四个价值:沟通,简单,反馈和勇气。如果我不先写出一个样子来,客户自己可能也没有什么清晰的概念。我们必须敢于丢弃代码。编码和写作,在修改中走向成熟。 J2SE,J2ME,J2EE的2本来是指Java1.2以后的版本,因为这个版本有个质的飞越,其中包括双亲委派模型。但是大家现在基本都不知道2之前的版本长成什么样子,所以现在这三个方向已经改名为Java SE, Java ME, Java EE了。这其实是三个标准,我说我实现了J2SE就意味着我可以用J2SE的组件进行java程序的开发了。JAVA这些平台是java可伸缩性的一个提现。

收到PHP童鞋的反馈:

 

我觉得不用讲太基础的语法,基础语法大家自己去看,主要讲讲java web开发的一个流程,从开始写代码,到编译,发布,上线,回滚整个流程


大体上的环节,以及需要用到哪些工具


具体咋用…


还有java的东西太多了,什么j2ee j2me,什么tomcat, resin啥的,都是什么关系,我是搞不懂


看来上一篇写的讲的时候是用不上了。但是《极限编程》里提到的四个价值:沟通,简单,反馈和勇气。如果我不先写出一个样子来,客户自己可能也没有什么清晰的概念。我们必须敢于丢弃代码。编码和写作,在修改中走向成熟。

 

J2SE,J2ME,J2EE2本来是指Java1.2以后的版本,因为这个版本有个质的飞越,其中包括双亲委派模型。但是大家现在基本都不知道2之前的版本长成什么样子,所以现在这三个方向已经改名为Java SE, Java ME, Java EE了。这其实是三个标准,我说我实现了J2SE就意味着我可以用J2SE的组件进行java程序的开发了。JAVA这些平台是java可伸缩性的一个提现。


Java SE


Java Standard Edition 标准版


主要用于桌面程序,控制台开发(JFC Java foundation classes)。我理解就是由Java自己的组件去画出界面。AWT(Abstract Window Tookit), Swing这些都是java用于画出图形界面的类库。做出来界面长成这种样子。也有界面长的好看的。比如说:eclipse。咱们用的这个集成开发环境就是Java SE开发的。


1112728-20170301200738251-557165826.png


Java ME


Java Micro Edition 微缩版


主要用于早期的手机,机顶盒。Java SE是基础,将它精简一点,再增加一些为运行在资源非常有限的设备而专有的类。最初设计它是为各个厂商提供一个标准,各个厂商要用自己的方案支持Java ME。那么大家只要有Java ME就可以为厂商的产品开发java程序了。现在安卓出现之后,大家基本都在用Android SDK了。这个就过时了。


1112728-20170301200750782-488998524.png


Java EE


Java Enterprise Edition 企业版


这是一组技术规范与指南。我们现在常说的SSH架构(struts+spring+hibernate)就是符合J2EE规范的。虽然咱们实际上用的不完全是这几种技术,架构核心是一样,就是说:咱们是做J2EE的。

 

Web容器


Tomcat, Resin, Jetty都是WEB容器,前几年JBossWebSphereWebLogic也流行过来着。相当于PHP Web Server。想要完成的工作都差不多,实现上有不同。



1112728-20170301200814016-739628926.png

1112728-20170301200829095-613777866.png


Web容器就不得不从Servlet说起。Servlet是用Java编写的服务器端程序。主要功能是交互式的浏览和修改数据,生成动态Web内容。其实Servlet是可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。


这么说是不是比较抽象?从程序的角度说:Servlet是一个在javax.servlet包里定义的接口。它为Servlet的生命周期声明了三个基本方法:init(), service()destroy()。每个Servlet都要事先这些方法并在他们的生命周期的特定时间由服务器来调用这些方法。

这么说是不是还是比较抽象?其实对于java出身的童鞋我会直接奉上下面两张图:


1112728-20170301200847876-1257150921.png


1112728-20170301200900516-2135608011.png


简单来说:我们只需要关心业务逻辑的开发,不需要关心请求过来是怎么传到我们开发的类里的,这件事儿是servlet做的。PHP童鞋说:servlet是http协议的java实现库,也有道理。

 

Web容器简单的说就是servlet的包装和实现。运行了web容器,一行代码不用写就可以通过http协议访问页面了。Tomcat, Resin, Jetty的区别简单来说就是实现方式不同,结果支持的并发数,响应请求速度都受影响。就好像三个java工程师A,B,C。来一个新需求,找谁都能做,但可能A干的比较快而已。

 

开发流程:


java web开发的流程,从开始写代码,到编译,发布。一个Eclipse就搞定。要放到线上环境:编译,发布,上线,回滚。这个一个Jenkins就搞定。


怎么写代码还是麻烦看看上一篇。编译是保存时自动执行的。因为eclipse都是默认勾选了自动build选项。


1112728-20170301200913751-1048703129.png


Debug或者是直接运行只要点击工程,右键Debug As --> Run with Jetty或者Run As --> Run with JettyOK了。


1112728-20170301200924876-1231978500.png


这个动手实验一下马上就能明白,关键先下载一个eclipse,官网上建议选择下图框中的版本。因为咱们做的是Java EE。这里面的插件会比较全,不然还要自己下载插件。下载下来eclipse把工程导进去,直接就可以运行哒。


1112728-20170301200937470-1187404031.png


PHP童鞋反馈说他们习惯人工打印调试,所以将java用命令行的方式来描述更好理解些:


  编译: javac命令 比如运行 javac HelloWorld.java 就会在目录下生成一个HelloWord.class文件,.class文件也叫字节码文件。这就是编译成功了。


    运行:  java命令  比如运行 java HelloWord.class 控制台上就会显示执行结果。


    在resin容器中运行的linux命令:


1112728-20170301204051173-1111258130.png


 从上面看到只是用java启动了一个resin(resin.jar是一个.class文件集合的压缩包,里面有包含目录结构的说明文件,java会根据那个文件去找)。


    所有我们写的代码都将编译好的.class文件还有需要的类库文件,配置文件,JSP文件等等放在一个目录下。


1112728-20170301204638313-863554757.png


然后将这个文件路径配置到Resin配置文件里。


1112728-20170301204823845-1693737551.png


启动就可以了。

 

Jenkins嘛,运行一下就好了,一看就明白。

相关文章
|
前端开发 JavaScript Java
计算机二级web题目(4)--CSS基础
计算机二级web题目(4)--CSS基础
162 1
|
前端开发 JavaScript Java
计算机二级web题目(3)--HTML基础
计算机二级web题目(3)--HTML基础
153 1
|
开发框架 网络协议 JavaScript
计算机二级web题目(1)--web基础
计算机二级web题目(1)--web基础
201 1
|
Apache
Web基础(下)
Web基础(下)
120 0
Web基础(下)
|
域名解析 人工智能 网络协议
Web基础(上)
Web基础(上)
220 0
Web基础(上)
|
前端开发 JavaScript 人机交互
Web开发及人机交互导论 实验九 JavaScript基础
Web开发及人机交互导论 实验九 JavaScript基础
302 0
Web开发及人机交互导论 实验九 JavaScript基础
|
前端开发 人机交互
Web开发及人机交互导论 实验三 CSS+DIV基础
Web开发及人机交互导论 实验三 CSS+DIV基础
175 0
Web开发及人机交互导论 实验三 CSS+DIV基础
|
域名解析 网络协议 网络架构
《图解HTTP》-WEB及网络基础学习笔记
简单来说,客户端就是个人使用的电脑,而服务端就是服务器。通过电脑访问服务器上的资源,用的就是HTTP协议。
129 0
《图解HTTP》-WEB及网络基础学习笔记
|
Java Linux 开发工具
一、搭建SpringBoot2.0.0M4基础Web项目
搭建SpringBoot2.0.0M4基础Web项目
104 0
一、搭建SpringBoot2.0.0M4基础Web项目
|
域名解析 缓存 网络协议
Web基础与HTTP协议
域名概念回顾: IP地址不易记忆,域名用于代替IP地址,方便记忆。 两台主机通信,是通过IP地址访问,所以需要将域名解析成IP地址。 早期使用Hosts文件解析域名,但随着域名的增多,工作量巨大,维护困难。 之后使用DNS (Domain Name Server,域名服务器) 进行域名解析。
179 0
下一篇
无影云桌面