J2EE(Java2 Enterprise Edition) 刚出现时一般会用于开发企业内部的应用系统,特别是web应用,所以渐渐,有些人就会把J2EE和web模式画上了等号。但是其实 J2EE 里面并不仅仅是web,可以看到很多其中的规范都是通用的,目的是为了高效开发出健壮的服务企业业务模式的应用系统。J2EE中也是可以没有web界面的应用,而现在面向大众用户开发的网站往往也会使用到很多的J2EE的技术,所以J2EE和web开发的概念都是融合在了一起了。

  我本人在JAVA开发刚入行的时候,也是做了不少web相关的项目,之后渐渐地web使用比较少了,现在web开发的技术日新月异,不过一些基础知识还是类似,所以也把这部分内容稍作整理,以期望可以给大家一些经验。

另:Java基础知识部分的整理, 可以见此处:  给Java新手的一些建议----Java知识点归纳(Java基础部分)


这次主要涉及到的两大块内容: 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 部分)的更多相关文章

  1. 给Java新手的一些建议----Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  2. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    原文出处:CSDN邓帅 写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些Java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行 ...

  3. 给Java新手的一些建议——Java知识点归纳(Java基础部分)

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...

  4. 史上最全的 Java 新手问题汇总

    史上最全的 Java 新手问题汇总   Java是目前最流行的编程语言之一——它可以用来编写Windows程序或者是Web应用,移动应用,网络程序,消费电子产品,机顶盒设备,它无处不在. 有超过30亿 ...

  5. Java 新手的通病

    一:对算法和数据结构不熟悉 为什么我先拿“数据结构和算法”说事捏?这玩意是写程序最最基本的东东.不管你使用 Java 还是其它的什么语言,都离不开它.而且这玩意是跨语言的,学好之后不管在哪门语言中都能 ...

  6. CDH搭建Hadoop分布式服务器集群(java新手小白)

    1首先对于一个java还白的小白,先理解CDH与Hadoop的关系 一.Hadoop版本选择. Hadoop大致可分为Apache Hadoop和第三方发行第三方发行版Hadoop,考虑到Hadoop ...

  7. 【Java基础】Java中你必须知道的知识点

    目录 Java中面向对象的基础知识 1. 什么是面向对象  2. 三大基本特征和五项基本原则 3. Java的平台无关性 4. 值传递和引用传递 5. 方法重载和重写 6. 基本数据类型 7. 包装类 ...

  8. 论新手该如何学习java?

    由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间,还有一个很重要的原因就是java这门语言更适合商业应用,所以高校里大部分博士老师们对此语言的了解甚至不比本科生多. 在这种环境下, ...

  9. java 新手必看大全

    背景:c#开发人员 学习java 新手一枚.只适合新手 1:配置java环境 (win10环境参考本目录java环境配置) 2:IDEA 熟悉开发工具 (当初没学java 很大的一个原因就是工具e文 ...

随机推荐

  1. 基于DRF的图书增删改查练习

    功能演示 信息展示 添加功能 编辑功能 删除功能 DRF构建后台数据 本例的Model如下 from django.db import models class Publish(models.Mode ...

  2. 2、electron进程

    electron核心我们可以分成2个部分,主进程和渲染进程. 主进程: 主进程连接着操作系统和渲染进程,可以把她看做页面和计算机沟通的桥梁. Electron 运行 package.json 的 ma ...

  3. 《ECMAScript6 入门》

    NVM Babel babel-core:提供 Babel 的 API,可以获得转码后的代码和抽象语法树. babel-polyfill:Babel 只能转换语法,如果想用类似 Promise.Gen ...

  4. 服务器控件调用JS函数

    是服务器端控件,不能在JS里直接调用,但可以在aspx.cs 里写方法可以调用JS函数,比如JS方法名称是check(), function check() {   alert(document.ge ...

  5. 自建 CA 中心并签发 CA 证书

    目录 文章目录 目录 CA 认证原理浅析 基本概念 PKI CA 认证中心(证书签发) X.509 标准 证书 证书的签发过程 自建 CA 签发证书并认证 HTTPS 网站的过程 使用 OpenSSL ...

  6. Selenium学习之==>18种定位方式的使用

    Selenium的定位方式一共有18种,单数8种,复数8种,最后两种是前面这16种的底层封装 单数形式8种 # 1.id定位 al = driver.find_element_by_id('i1') ...

  7. WebMvcConfigurer 与 WebMvcConfigurationSupport避坑指南

    我们知道,在Spring Boot 2.0后用自己的的配置类继承WebMvcConfigurerAdapter时,idea会提示这个类已经过时了. 通常情况下我们会采用下面两种代替方案: 实现WebM ...

  8. 关于Unity3D中的SerialField这个Attribute的功能

    首先我们看看效果,以下是源文件的内容: 然后对应的面板: 要注意的地方其实就这里: 可以看出,public默认就可以在面板中进行修改,相应的设为private的isCreateSoldier却不会出现 ...

  9. 多变量分析绘图(hue参数)以及盒图和小提琴图

    1,函数stipplot() stipplot()函数用来画散点图,其x轴是离散型的变量 直接上代码 import seaborn as sns import numpy as np import p ...

  10. ActiveMQ学习教程/1.简要介绍与安装

    ActiveMQ学习教程(一)——简要介绍与安装 一.名词: 1.JMS:即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的 ...