J2EE Architecture(16)

简介: J2EE Architecture(16) 1、表示层 表示层通常也称Web层,Web服务器及其组件构成了J2EE应用程序的“表示部分”。 客户端通过Web层访问企业资源,Web层允许规模庞大的客户群在Internet或内网环境下,通过合理方式访问企业应用程序。

J2EE Architecture(16)


1、表示层
表示层通常也称Web层,Web服务器及其组件构成了J2EE应用程序的“表示部分”。
客户端通过Web层访问企业资源,Web层允许规模庞大的客户群在Internet或内网环境下,通过合理方式访问企业应用程序。Web层组件是轻量级组件,具有可伸缩特性。
浏览器将HTTP/HTTPS请求发送给Web服务器部署的组件,Web组件可能使用RMI/IIOP通信协议或其它专用协议直接连接到资源层,也可能连接到业务层。
J2EE Web应用程序的复杂性对应用程序的稳健性有直接影响,二者呈线性递增关系。
2、Web层的重要性
1)静态和动态内容
Web可支持静态和动态内容。内容包括文本、图形和多媒体。
2)请求/响应
利用Web组件可实现“请求-响应”模型。
3)轻量级
Web服务器将HTTP用作通信协议。HTTP是一个轻量级传输协议,是实现业务事务“请求-响应”通信模型的最简洁方式。
HTTP能传输对企业至关重要的HTML和XML内容。
4)会话
默认情况下HTTP通信无状态。即服务器不能连接同一个客户端发送的两个连续请求。在一些技术的帮助下,可将两个或更多通信系列连成一个有用的企业事务会话。
5)可伸缩
Web服务器能够伸缩,能适应请求负载的增加。可利用硬件、软件和设计模式,提高伸缩能力,使Web应用程序将内容呈现给更多或更少的客户。
6)可实现业务逻辑
可优化Web服务器以提高企业应用程序的表示能力。
可通过一些简单方法,将业务逻辑嵌入到Web服务器上。注意:业务逻辑若包含在Web层,可能存在泄漏风险。
3、Web容器
Web应用程序使企业应用程序的一部分,使客户层与业务层之间的中间层,或客户层与资源层之间的中间层。
Web层负责为部署的Web应用程序提供稳健支持。
Web服务器可能需要支持若干个Web应用程序,而每个Web应用程序可能需要支持若干个交互的Web组件。各个Web应用程序部署的Web组件可能是若干个Servlet、Filter和JSP的组合。
Web服务器和Web容器一起,为Web应用程序及其组件提供生命期管理支持,并提供其它校准服务、如事务、命名和目录服务等。
4、Web组件
Web层有4类组件:
1)HTML
2)Servlet
Servlet组件可部署到服务器上,运用“请求/响应”模式。
其工作原理:将Servlet组件部署到适当容器后,Servlet将等待特定套接字上的客户端的请求;在收到请求后,组件执行必要的计算,并将响应返回给对应套接字上的客户端。完成了对话,也就是执行了业务环境的事务。
GenericServlet是Servlet规范定义的超类,运用“请求/响应”模式,独立于协议。优势在于:允许通过适当扩展GenericServlet类,实现使用其它任何通信协议的特殊Servlet。
HttpServlet是GenericServlet的子类,运用“请求/响应”,模式,利用HTTP通信协议交换信息。HTTP Servlet可接收各种形式的HTTP请求,如GET、POST和HEAD等。
Servlet的HTTP响应通常是HTML页或XML页,可使用setContentType()方法,将text/html或text/xml作为该方法的参数,以设置Servlet输出流,生成所需的内容类型。很多重载方法有助于接收和响应客户请求。如:doGet()方法服务HTTP GET请求,doPost()方法服务HTTP POST方法。
Servlet的主要目的不是生成HTML或XML输出,而是在Web层提供编程逻辑和功能支持。
Servlet也可能支持业务逻辑,以建立MVC Model 1 架构。
Servlet可与企业应用程序的其它组件交互,为客户端生成适当的输出。
Servlet的主要目的是控制不同组件之间的通信,以根据企业需求生成需要的输出。
可根据功能,将Servlet分为“前端控制器Servlet”和“表示Servlet”。
3)Filter
在Servlet2.3推出的,又称为“Servlet Filter”,是插入式Web组件,允许实现Web应用程序的预处理和后期处理逻辑。
Filter支持Servlet的“请求处理”功能,如登陆、转换、安全、会话、转化和企业应用程序需要的其它同类任务。
Filter能截获传入的请求和传出的响应,能检查、修改或处理Web应用程序的数据流。
可将Filter作为独立的模块化组件添加到Web应用程序的“请求-响应”链;也可在不影响企业应用程序同一位置Web组件的情况下将其从Web应用程序中删除。
Filter是J2EE应用程序的可选组件,正确使用Filter或Filter链,将能极大的提高重用效果,并能用多种方式快速地实现应用程序。
4)JSP
在HTML页中加入少量Java代码可用来计算动态数据,是生成动态输出的绝佳方式。在成功转换和编译JSP页后,将创建一个特殊的Servlet,以接收请求。
嵌入HTML页的Java代码需要遵守一些简单规则。
(1)JSP标准动作
通过与服务器端JavaBean组件的交互来提高能力和稳健性,能帮助Web组件实例化Web层的JavaBean。
例子:

  @ page contentType="text/html"  %>
html>
 
body bgcolor="white">
  
jsp:useBean id="custInfo" class="com.ora.jsp.beans.custinfo.CustInfoBean">
   
jsp:setProperty name="custInfo" property="*"/>
  
jsp:useBean>
  The following is the customer information:
  
ul>
   
li>Customer Name:
    
jsp:getProperty name="custInfo" property="custName"/>
   
li>
   
li>Address:
    
jsp:getProperty name="custInfo" property="address"/>
   
li>
  
ul>
 
body>
html>

(2)JSP定制标记
定制标记是JSP中使用的XML标记类型,用于在输出中提供更具定制特点的动态内容,可减少JSP页中的脚本元素。
定制标记可提供各种支持,如条件标记和迭代器标记。
例子: 

 @taglib uri="myTag" prefix="myData"%>
html>
 
head>
  
title>My Own Tagstitle>
 
head>
 
body>
  
table>
   
tr>
    
td>
     
myData:getData name="theText"/>
    
td>
   
tr>
  
table>
 
body>
html>
目录
相关文章
|
Android开发 Java Kotlin
Architecture -- WorkManager
1. WorkManager 1). 简介 其实就是"管理一些要在后台工作的任务, -- 即使你的应用没启动也能保证任务能被执行",WorkManager在底层, 会根据你的设备情况, 选用JobScheduler, Firebase的JobDispatcher, 或是AlarmManager。
906 0
|
Java
读Martin Fowler's 《Patterns of Enterprise Application Architecture》有感
作为一本技术指导书,显然这本书有些outdated了,但想想现在的一些框架,架构正是基于这本书的思想构建的,还是不免对作者当时的Vision感到钦佩。出于对这些思想本源的追索,以及对历史的追溯。还是很有必要浏览这本经典著作的,对于这个500页的书,我看的比较快,只是跳一些感兴趣的点着重看下,事实证明还是很有收获的。 POJO 起源:J2EE才出现时,尽管EJB2.0 特别
1162 0
|
开发框架
J2EE Architecture(3)
J2EE Architecture(3)
837 0
|
架构师
J2EE Architecture(2)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1596037 J2EE Architecture(2) 1、架构术语架构师要有艺术家的风范。
863 0
|
开发框架
J2EE Architecture(16)
J2EE Architecture(16)
597 0
J2EE Architecture(6)
J2EE Architecture(6)
860 0
|
Java API 数据库
J2EE Architecture(5)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1603877 J2EE Architecture(5) 1、J2EE标准产品标准产品是J2EE平台的有形方面:1)应用程序组件客户层组件:典型的客户端有Java应用程序、Java applet和瘦客户端等;表示层组件:表示层组件在Web服务器环境中运行,Servlet、JSP和HTML等都是典型例子。
858 0
|
Java 容器
J2EE Architecture(12)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1611378 J2EE Architecture(12) 1、EJB规范EJB(Enterprise JavaBean)是最重要的组件,也是J2EE技术的重要组成部分。
1026 0
|
开发框架
J2EE Architecture(10)
J2EE Architecture(10)
745 0
|
数据库 容器 开发框架
J2EE Architecture(14)
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1614141 J2EE...
855 0