给Java菜鸟的一些建议_关于Java知识点归纳(J2EE and Web 部分)
j2ee(java2 enterprise edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把j2ee和web模式画上了等号。但是其实 j2ee 里面并不仅仅是web,可以看到很多其中的规范都是通用的,目的是为了高效开发出健壮的服务企业业务模式的应用系统。j2ee中也是可以没有web界面的应用,而现在面向大众用户开发的网站往往也会使用到很多的j2ee的技术,所以j2ee和web开发的概念都是融合在了一起了。
我本人在java开发刚入行的时候,也是做了不少web相关的项目,之后渐渐地web使用比较少了,现在web开发的技术日新月异,不过一些基础知识还是类似,所以也把这部分内容稍作整理,以期望可以给大家一些经验。
这次主要涉及到的两大块内容: web相关的, j2ee相关的技术
web部分:
脱离开各种语言,纯粹和 web相关的就是这些: html,css,javascript。哪怕你不用java开发,用c#、php或者python,这些内容都是通用,这里主要偏重一些基础知识。
http协议,https协议
我觉得做web开发,http是基础中的基础。在一开始的时候,开发者可能对于这个内容了解不是非常深入,只是有个初步的概念,这个没有问题,可以先从了解,简单使用开始。 不过一旦有了一些web开发经验之后,你就需要把这块内容深入理解吃透。只知道简单概念,没有深入了解,可能并不会影响你开始上手做web开发,但是一旦涉及到一些性能调优、系统架构等工作,就需要你对http有一个深入的了解,才能把工作做好。
对于http请求, 我主要会关注以下内容:
http请求的模式: request/response
http请求的方法:get, post, put,delete 等等
协议的具体格式: head + body
协议的各类返回码:1xx,2xx,3xx,4xx,5xx
header中一些主要属性的含义和使用场景
https协议
cookie的基本原理和使用场景
html, css
这是web开发的一个基础,如果公司有专门的前端开发人员,可能你就不需要做这块相关的内容。可能只需要准备一些服务,可以提供一些数据就行。不过要是公司没有专门的前端人员,那就需要你自己写简单的页面和简单的布局了。这种情况下,还是对html和css必须有个简单的了解才行。
html简单了解的话需要知道页面的结构,具体各个表单,标签的使用方法,css需要知道一些基本的选择器的编写和使用。但这也只能满足一些简单页面的要求。如果有更加复杂页面的开发需求,那对css+div的使用需要有更加深入的了解了,具体内容因为自己对这方面涉及不多,也不多说了,大家可以再找其他的参考资料。
javascript:
前端开发的语言,唯一的语言,就是js。并且从中衍生出一个很优秀的框架jquery。现在前端基本上只要有一点复杂度的,都会使用这两种技术。并且以jquery为基础,还有一些其他前台框架,提供了各种动态效果,还有表格,表单等一些常用的处理。近两年,angularjs框架又开始火热起来,这个框架在前端实现了mvc的架构,给前端的开发带来了革命性的影响(但是不意味着所有的前端开发都应该要用这个)。这些都是很值得好好看一下。即便不是专攻前端开发的,但是对于这几个技术点,能够先了解一下基本情况,基本的原理,对于web开发来说,还是大有好处的。
因为自己对这个涉猎也不深入,所以也就不更多罗列了,以免误人子弟了。
webservice
在现在的企业应用开发中,webservice已经是个必备的工具了。在各个企业中,经过一段时间积累,会有很多不同种类的应用,这些应用可能都会使用不同的语言开发,并且需要相互之间的通讯。通讯的首选就是webservice。前后台的交互,服务之间的交互,或者不同语言之间的交互,都可以使用webservice这个技术。
webservice的实现方式多种多样,两者共同点是大家都是以http协议为基础的,都可以跨域,跨语言进行访问。
用的比较多的,一个是soap协议的方式。这是比较传统的webservice 的实现,这个协议比较重量级,发布者会将webservice以wsdl形式发布,调用者通过wsdl可以直接生成实体类等。对于调用者来说,“调用”这个步骤会更容易处理一些。不过soap形式也存在着消息量大,传输效率低等缺陷。soap协议本身的可选项比较多,比较复杂,各个属性设置略有差异会导致服务通讯的失败,需要在调试中需要花费更多的时间。
现在更加流行的是使用restful的webservice。这种技术是简化了url,或者说对url做了一定格式的限定,同时配合上http的各种method,包括有get,post,delte,put 等,来实现整体service的各种功能。一般传输的内容都是json格式的字符串。restful的webservice的优点在于这是一种更加轻量级的使用方式,传输效率更高,接口约定更加清晰,双方调试也会更加便利一些。缺点在于,json格式太灵活,所以双方都需要自行处理json中的各个参数。对于接口实体类的处理需要更多的逻辑和代码。
j2ee部分
jdbc(可以在j2se中使用)
jdbc用于java和数据库交互。它是java面向接口编程的一个典型实例:开发者使用jdbc的api进行开发,但是底层可以针对不同的数据库使用不同的jdbc驱动(由各个数据库供应商提供)。jdbc被归为了j2ee的规范中,但是在一般的java程序中也可以使用,而且也是几乎都会被直接或者间接使用(除非不用数据库)。这从侧面也说明了,其实j2ee企业开发和web开发并不是同一个概念,而是相互融合的。
jdbc是java中最原始,最纯粹,效率最高的访问数据库的方式,我们熟知的hibernate、 mybatis等orm框架都是在jdbc基础上做的封装。了解jdbc对于以后和数据库更好打交道会有着很大的用处。哪怕是一个java开发新手,你需要去学习hibernate、mybatis等框架,你也需要先学习jdbc作为这些的基础。
对于jdbc的具体怎么实现,这个真不需要了解到那么深入。我推荐大家学习jdbc至少需要掌握以下内容:
jdbc的原理: jdbc为接口,可以有不同的驱动driver类
jdbc中的一些基本概念: connection, statement, resultset 等
jdbc使用的基本流程
注册driver
创建 connection
创建 statement
执行获取 resultset
处理返回结果 resultst
statement 和 preparestatement 的区别, 掌握preparestatement的主要用法(推荐使用)
线程池的概念和基本用法
jms(可以在j2se中使用)
jms(java message service)是我们俗称的mq服务,有很多可用的产品,如 activemq, zeromq, rabbitmq等等。基本原理都是一样:在有了mq服务器之后,向某个topic,或者queue中发送消息,或者从中接收消息。
这块知识,需要了解一些基本的mq的使用方法,包括mq服务器的连接,收发mq消息等。需要注意的是,这里收发消息是一种异步的方式,mq是一种很基本的把同步请求异步化的手段。
servlet
这个是java web开发的核心概念,我们熟悉的web server其实都是servlet的容器。那servlet是个什么呢?我的理解,servlet就是一个java类,用来处理http请求,并且返回http响应的程序。这个程序运行在servlet容器中,或者说嵌入在servelt容器中运行。容器中可以定义多个servlet匹配不同的url,容器启动后接收到了http请求,容器会根据定义好的url的规则分配给相应的servlet程序进行处理。
java中的web开发都是围绕servlet这个概念来进行的,web.xml定义了url的处理分配规则,我们使用的struts,springmvc框架也有专门的servlet类来进行请求的转发和处理。所以学习java web开发一定要理解好servlet这个概念。
jsp
以前的java web开发,基本都是以jsp为主,需要在jsp中编写html代码和java代码。 近来一些更先进的展示层框架,在逐步替代jsp,比如 freemarker、velocity等。更有一些前后端分离的框架直接就是使用html中的javascript以ajax方式和后台交互,这样后台不再需要提供展示层,而是给前台展示层提供数据。
不过jsp作为最原始的java web开发工具,在制作简单页面的时候,还是非常容易上手的,建议还是可以学习一下jsp基本的使用方法,在制作简单页面时使用,一旦有更加复杂的页面需要开发时,再考虑使用其他展示层的框架进行替代。
webserver 的使用
在java web开发中另一个绕不开的内容是webserver的使用,比如最流行的tomcat, 企业级环境中经常使用的 weblogic、webspare、jboss等等,真的有很多。
作为一个web应该开发人员,应该需要熟练掌握一些web server 的知识。这对于你在提高应用性能,本地调试web应用方面都很有好处。
你可以更多熟悉一下tomcat,因为一般开发者本地都会使用它作为web容器,哪怕生产正式环境中是其他的。可以了解一下tomcat中体系结构如何,结构目录和配置文件的详细解读,如何在ide中结合tomcat进行开发调试等等。再深入些可以查看一下tomcat的源代码,了解一下一般webserver是如何实现的,如何控制线程数,这对你在其他方面的设计开发也很有借鉴作用。除了tomcat之外,你还可以就你们生产环境中使用的web server再做个具体的了解,以便更好地开发适合的web应用。
以上这些只是我自己对于企业级开发和web开发的一些简单心得,当然,j2ee中还有更多的规范,web 开发也有更多相关的内容, 我因为也有一段时间没有专注在web相关的开发上面, 这些知识点罗列也一定有不少疏漏, 所以只是简单分享一下自己这方面的经验了,希望给刚上手的开发者一些经验吧。
这篇给java菜鸟的一些建议_关于java知识点归纳(j2ee and web 部分)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。