收到PHP童鞋的反馈:

我觉得不用讲太基础的语法,基础语法大家自己去看,主要讲讲java web开发的一个流程,从开始写代码,到编译,发布,上线,回滚整个流程
大体上的环节,以及需要用到哪些工具
具体咋用…
还有java的东西太多了,什么j2ee j2me,什么tomcat, resin啥的,都是什么关系,我是搞不懂

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

J2SE,J2ME,J2EE的2本来是指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开发的。

Java ME

Java Micro Edition 微缩版

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

Java EE

Java Enterprise Edition 企业版

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

Web容器

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

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

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

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

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

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

开发流程:

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

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

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

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

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

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

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

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

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

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

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

启动就可以了。

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

J2那几个E和Web基础的更多相关文章

  1. Golang友团无闻Go语言Web基础视频教程

    教程内容:GO语言资料Golang友团无闻Go语言编程基础Golang友团无闻Go语言Web基础教程 Go语言Web基础教程列表:[Go Web基础]12Go Web 扩展学习.mp4[Go Web基 ...

  2. HT for Web基础动画介绍

    在上一篇<基于HT for Web矢量实现3D叶轮旋转>一文中,我略微提了下HT for Web基础动画的相关用法,但是讲得不深入,今天就来和大家分享下HT for Web基础动画的相关介 ...

  3. Web基础开发最核心要解决的问题

    Web基础开发要解决的问题,往往也就是那些框架出现的目的 - 要解决问题. 1. 便捷的Db操作: 2. 高效的表单处理: 3. 灵活的Url路由: 4. 合理的代码组织结构: 5. 架构延伸 缓存. ...

  4. web基础--html

    WebBasic 1.web应用体系 课程大纲 1.web基础:做网页     2.结构:         a.html             勾勒网页结构及内容         b.css     ...

  5. java web基础环境搭建

    java web基础环境包括:(1)servlet容器也即tomcat(2)jre即java程序运行环境 环境变量配置:分别下载jdk和tomcat安装包. jdk环境变量配置: 第一步:系统环境变量 ...

  6. Web基础知识和技术

    WEB是一个外延广泛的概念,不单单指网站,乌徒帮专注拥有WEB界面的网站开发,帮助初学者或已经进入开发的朋友们提供参考讨论平台,然而并不一定能将所有的WEB知识讲全讲透,只是能满足初涉者的建站需求,能 ...

  7. java web基础 --- URL重定向Filter

    java web基础 --- URL重定向Filter httpRequest.getRequestDispatcher("/helloWorld").forward(httpRe ...

  8. (0)写给Web初学者的教案-----Web基础

    0,Web基础 一.    What is the Web? Can It Eat? 很多同学可能都听说过一个名词叫做“Web”,这个词隐隐约约好像和我们上网相关.但是呢,又很难说的清楚.我们今天每位 ...

  9. web基础系列(五)---https是如何实现安全通信的

    https是如何实现安全通信的 如果有不正确的地方,还望指出! web基础系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 回顾 总结几个概念(具体描述可以看上一篇文章) 数字 ...

随机推荐

  1. CoreData和FMDB你用哪个?

    概括: 我们先说说这两个东西,CoreData 和 FMDB,其实就我自己而言觉得这两个都不错,刚开始是接触FMDB的,CoreData是工作后自己看的.苹果推荐开发者去使用CoreData,但 FM ...

  2. git链接GitHub命令及基本操作

    Git是一款不错的代码管理工具,下面引用百科的一段话:  Git是用于Linux内核开发的版本控制工具.与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服 ...

  3. 学习JVM--垃圾回收(二)GC收集器

    1. 前言 在上一篇文章中,介绍了JVM中垃圾回收的原理和算法.介绍了通过引用计数和对象可达性分析的算法来筛选出已经没有使用的对象,然后介绍了垃圾收集器中使用的三种收集算法:标记-清除.标记-整理.标 ...

  4. screen printing

    https://www.youtube.com/watch?v=kWKOgHaze0s sample website provide http://midwestsign.com/index.asp ...

  5. 每天一个Linux命令(12)--more命令

    more命令,功能类似cat,  cat 命令是这个文件的内容从上到下显示在屏幕上,more会以一页一页的显示方便使用者主页阅读,而最基本的指令就是按空格键就往下一页显示,按B键就会往回一页显示,而且 ...

  6. 点击Robot Framework的桌面快捷图标后,没有反应(没有打开应用程序)

    http://www.cnblogs.com/zhengyihan1216/p/6397478.html  这篇文章中介绍了如何安装Robot Framework以及如何在桌面上创建快捷方式. 但是有 ...

  7. 解决clipboard手机端无法复制的一种思路

    最近,做了一个切图的小项目 主要内容是微信号的推广页面,上面会有精美的图片和微信号:) 点击按钮,会复制到粘贴板上,自己去微信里面粘贴搜索:),懒人会进行一系列复杂操作么,不看好 首先,百度了一下,看 ...

  8. 【Zookeeper】源码分析之Leader选举(二)

    一.前言 前面学习了Leader选举的总体框架,接着来学习Zookeeper中默认的选举策略,FastLeaderElection. 二.FastLeaderElection源码分析 2.1 类的继承 ...

  9. iOS热更新技术被苹果官方警告?涉及到RN、Weex、JSPatch!!!

    今天一早,不少iOS开发群都炸窝了,原因是部分iOS开发者收到了苹果的警告邮件: 有开发者质疑可能是项目中使用了JSPatch.weex以及ReactNative等热更新技术.对于修复bug提交审核的 ...

  10. ajax 写登录

    AJAX的全称是Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). ajax的优点: 1.最大的一点是页面无刷新,用户的体验非常好. 2.使用 ...