窥探JAVA WEB

java web/j2EE

学习这门技术就是要知道其如何开发、如何部署运行。开发这一块主要要了解架构、模式、分层技术。部署运行这一块就是如何将项目搞到服务器上并能够运行起来。

一、项目开发的基础知识:

1、架构=前端(页面展示)+后端(业务逻辑)

前端=html/jsp/css/js/ajax/tiles/velocity/freemarker(即(view))

后端=数据库+java业务逻辑代码(即(model+controller))


2、MVC:模型-视图-控制器(WEB开发的经典模式)

model-view-controller

view:表现层(前端)

model:承载数据的抽象结构

controller:view和model的桥梁


3、分层解决方法(是针对后端,使得后端代码:整洁、易读、易维护)

简单的架构体系:从上到下

controller

service(可加接口层,目的是解耦)

dao(可加接口层,目的是解耦)

数据层/持久层


4、数据层/持久层

jdbc/Mybatis/Hibernate

关系型数据库:MySQL/Oracle等

非关系型数据库:MongoDB、Redis等


5、spring(java WEB中最值得一提)

贯穿整个项目的框架,实现依赖注入

SSH SSM由此而来


二、项目部署、运行

1、服务器

服务器这个概念其实很简单,就是一台电脑,那它和我们日常用的电脑有什么区别?

            第一,它一般没有显示器,它只有主机。

            第二,它的操作系统不同于我们常用的windows , Mac OS。更多的是*nix系统。

            第三,它运行了一些服务器端软件。

比如说,我下文即将提到的Tomcat , Jetty , Nginx,Apache,其实这些都是服务器软件,只是主机运行了这些软件,所以有时候大家就混淆了叫法。所以所谓的数据库服务器,大家也知道了,其实就是运行了数据库的主机。说到服务器,我们所需要掌握的重点知识就是服务器操作系统,也就是*nix系统,比如CentOS , Ubuntu等。

1、1   应用服务器:tomcat、glassfish、JBOSS

       根据定义,作为应用程序服务器,要求可以通过各种协议(包括 HTTP 协议)把商业逻辑暴露给(expose)客户端应用程序。应用程序使用商业逻辑就像你调用对象的一个方法或过程(语言中的一个函数)一样。

tomcat

      Tomcat仅是个HTTP服务器,以及Servlet/JSP API的执行器,也就是所谓的servlet容器,不支持EJB,JMS。相对于JBOSS来说较为轻量级,实现的功能也较少,不能完整的支持最新的JavaEE标准,适用于较为简单的Web应用,简单易用。

JBOSS

       JBOSS是开源应用服务器,JBOSS与Tomcat不同,它提供了更多开箱即用的功能特性,也更重,它完整的实现了J2EE 6。那么应该怎样选择Tomcat或者是JBOSS,如果对大企业来说,JBOSS提供了额外的如下功能:

  1. JMS messaging for asynchronous integration
  2. Web Services engine (JAX-WS and/or JAX-RS)
  3. Management capabilities like JMX and a scripted administration interface
  4. Advanced security, e.g. out-of-the-box integration with 3rd party directories
  5. EAR file instead of "only" WAR file support
  6. all the other "great" Java EE features I can't remember :-)

Glassfish

      Oracle开发的官方Java容器,支持最新的特性,有自己的web容器(不是tomcat)。


1、2   web服务器:Apache、Nginx

        Web服务器可以处理HTTP协议,当Web服务器接收到一个HTTP请求,就会返回一个HTTP响应。

        Web服务器可以针对静态页面或者图片的请求进行跳转,或者把动态响应委托给其他一些程序

        如CGI,JSP,servlets,Asp,Javascript或者其他服务器端技术。

        Web服务器仅仅提供一个可执行服务器端环境和返回响应的环境,不涉及其他技术。

Apache
       是简单的web服务器,速度快,在大型网站中,常与应用服务器配合部署,仅支持静态网页。

Nginx

       著名的HTTP服务器,速度极快,支持负载均衡


2、部署项目

将项目部署到应用服务器上


3、项目运行

http请求——web服务器——应用服务器

疑问:  直接访问应用服务器不好吗?为什么要给web服务器,然后再到应用服务器?

解答:     从功能实现上来说,是可以的。许多应用服务器,比如Tomcat是具有web服务器的功能,所以直接访问也可以。但是由于在实际的生产环境中,由于负载均衡cdn加速等原因,我们还是需要在应用服务器的前端再加一个web服务器来提高访问效率,常用的有Nginx,Apache这样的服务器。

   )    


三、再次归纳学习java web的知识点列表

开发:

  1. 视图层技术——HTML,CSS,JS,AJAX,Tiles,Velocity,FreeMarker
  2. 持久层技术——MyBatis,Hibernate
  3. Spring , Spring MVC
  4. 项目构建工具Maven
  5. 日志Log4j
  6. 版本控制 Git

数据库技术:

  1. SQL语句
  2. 参数调优

操作系统:

  1. 熟练掌握一种Linux系统,原理,Shell命令

服务器技术:

  1. 熟练使用并理解一个应用服务器技术的原理(Tomcat)
  2. 熟练使用并理解一个Web服务器技术的原理(Nginx)

附加:

缓存技术:

  1. 熟练使用并理解一种缓存技术(Redis,Memcache,EhCache)

非关系型数据库

  1. 熟练使用并理解一种非关系型数据库(MongoDB)

中间件技术:

  1. JMS:activeMQ和kafka
  2. RPC: Dubbo

设计模式:

  1. 了解并能够使用几种最主要的设计模式

网络:

  1. 熟练使用并理解一个网络开发技术(Netty)
  2. 熟悉http,TCP协议

Java虚拟机:

  1. 熟悉jvm运行原理,内存分布
  2. jvm参数调优






猜你喜欢

转载自blog.csdn.net/cincoutcin/article/details/79615562