`
hanwesley
  • 浏览: 59464 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

web应用本质论

 
阅读更多

web应用的本质:客户端与服务器之间,通过HTTP协议通信。

Filter相当于一个拦截器。它会在请求到达Servlet之前,以及响应返回到浏览器之前,被激活。

Filter的用途很广泛,例如:验证授权、加密、压缩等。

 

Servlet生命周期:

 创建对象 – Servlet对象被创建时,不能做任何分配系统资源的操作。

 init初始化

 service多次使用  一个servlet对象将用来处理所有的相关请求

 销毁: 当服务器关闭,或者undeploy时,调用destroy方法

 被垃圾收集器收集

 

M-V-C是Model-View-Controller的简写。这个模式指出,在一个WEB应用中,应该把Model、View、Controller三种角色彻底分开:

   Model代表了数据。数据可以从任意地方取得,例如:数据库、XML等。通常用JavaBeans来代表model。

   View代表了可见的页面。View的目标是将数据(Model)正确地呈现出来。但是View绝不关心数据是从何处来的、怎样来的。通常用JSP、模板技术来代表view。

   Controller代表了控制逻辑、业务逻辑。Controller是M-V-C的核心 —— 它接受请求,执行相应的控制逻辑、业务逻辑,生成models,最后调用views。Controller通常由Servlet来担当。

 

velocity

必须明确指定Velocity模板本身所采用的字符集编码。

所以你必须指定一个init-param:input.encoding=GBK,表示我们用GBK编码来写模板。

 

转发重定向区别?

  请求次数不同?  转发一次请求完成

  共享对象不同?  转发可以共享一些对象,而重定向是在两次请求中完成,因此无法共享对象

  目标不同?       转发只能发生在同一个应用内部

  重复提交?       转发容易引起重复提交(完全防止重复提交,必须使用session技术)

 

Web应用Spring解决了什么?  

Spring 解决了一个非常关键的问题他可以让你把对象之间的依赖关系转而用配置文件来管理,也就是他的依赖注入机制。

spring 一中心,三基础!

一个中心:POJO编程(简化J2EE开发)

三个基础:IOC(易事简为),AOP(难事善为),服务抽象(重用轮子)

 

工具:

HttpWatch工具非常有用,尤其对我们跟踪重定向、session、cookie特别有用。通过它也可以观测到一些不明显的错误,而这些错误可能无法在浏览器中直接表现出来。




关于架构:

  最高层次的系统分解

  系统中不易改变的决定

  管道方式

  过滤器方式

  分层,如何将企业应用组织成不同的层次,以及这些层次之间如何协同工作。

  根据应用的复杂程度来分层,应对不同的分离方式,有一条关于依赖性的普遍原则:领域层和数据源层绝对不要依赖表现层, 这条原则将简化在相同的基础上替换表现层的待嫁,也使得表现层的修改所带来的连锁反应尽可能小,领域层与数据源层的关系更为复杂,其取决于数据源层的架构模式。

 

 关于性能:

   尽量减少远程调用

     响应时间:系统完成一次外部请求处理所需的时间。

     吞吐率:单位时间系统处理多大的请求量。对于企业应用来说,吞吐率是每秒事务数(tps)来度量。

     响应性:系统响应请求的速度有多快。为了提高响应性可以损失一些响应时间和吞吐率是值得的。

 

模式

   每一个模式描述了一个在我们周围不断重复发生的问题以及该问题解决方案的核心。

   你什么时候能不用她?

从领域层说开起

    如何建模,如何抽象领域模型就变得很难,因为 如何使用领域模型是很难学习的,另外领域模型的数据库连接非常复杂。

 

数据源层

  对象与数据库,如何映射?

    活动记录

    实现松耦合:使用表数据入口或行数据入口

    随复杂度的进一步增加:考虑使用O/R映射 确保领域模型尽可能与其他各层相互独立。

    存储过程看做一个性能优化的步骤,而不是看做一项架构原则

    持久化数据?

  很多人同时访问数据?确保两个人在同时操作同一数据项时不出现错误,事务管理可以处理这个问题。但无法做到对应用开发者透明。

 

表现层:

  胖客户用户界面     需要对客户程序进行控制和部署管理

  HTML浏览器界面   尽可能使用这种方式

     Martin 建议使用模型—视图—控制器 作为设计基础

     站点面向文档:推荐使用页面控制器 特别是当既有静态页面又有动态页面的时候。

     如果站点导航机制和UI更为复杂,考虑使用前端控制器

  关于视图

     主要有两种选择:模板视图和转化视图,

     如果开发的是一个有多种表现形式的站点,考虑使用两步试图

 

与下层通信:

   尽可能将所有的东西运行在一个进程中,这样就不用考虑低效的进程间通信

   如果无法再一个进程中完成,可以将领域逻辑层用远程外观包装,然后使用数据传输对象实现与Web服务器的通信。

   Web Services是应用集成而不是应用架构的技术。

 

 

 

缓存

 

定时任务

 

spring中使用quartz

   1)那个对象--那个方法

    targetObject

    targetMethod

   2)触发器

   配置JobDetail

 

清空浏览器缓存:

1, 使用java提供的方法,在jsp或者servlet中都可以 

  <% 

  response.setHeader("Pragma","No-cache"); 

  response.setHeader("Cache-Control","no-cache"); 

  response.setDateHeader("Expires", 0); 

  %> 

  2, 使用HTML标记,如下面: 

  <HEAD> 

  <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 

  <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> 

  <META HTTP-EQUIV="Expires" CONTENT="0"> 

  </HEAD> 

 

分享到:
评论

相关推荐

    C#本质论(第3版)

    《C#本质论(第3版)》是针对C#编程语言和ASP.NET框架的一本入门级学习教材,旨在帮助初学者深入理解C#的核心概念和技术,并为ASP.NET Web应用程序开发打下坚实基础。该书内容全面,覆盖了从基础知识到高级特性的广泛...

    C#本质论(中文版).pdf

    《C#本质论》还会涉及.NET框架的重要组件,如Windows Forms和WPF用于构建图形用户界面,以及ASP.NET用于开发Web应用程序。读者还将了解到如何使用ADO.NET访问数据库,以及如何利用XML和JSON进行数据交换。 总之,...

    c#7.0本质论带图片完整版

    C#是微软开发的一种面向对象的编程语言,广泛应用于Windows平台、Web应用、移动应用以及游戏开发等领域。 C# 7.0是C#语言的一个重要版本,它在C# 6.0的基础上进行了一系列的改进和增强,引入了多个新特性,以提高...

    C_本质论(中文版).rar

    8. **Web应用程序开发**:C#也是ASP.NET Web应用程序开发的主要语言,书中可能会涉及ASP.NET MVC(Model-View-Controller)框架,以及Web API的使用,这些都是构建现代Web服务的关键技术。 9. **单元测试与调试**:...

    asp.net 本质论

    总的来说,《ASP.NET本质论》是一本专注于理解ASP.NET内在工作原理的书籍,通过深入探讨HTTP交互和事件处理,为开发者提供了更深层次的洞察,帮助他们更好地构建和优化基于ASP.NET的Web应用程序。

    ASP.NET 本质论 (全)

    ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它基于.NET Framework,为开发者提供了高效、强大且易于使用的工具和语言支持。《ASP.NET 本质论》这本书深入浅出地探讨了ASP.NET的核心概念和技术,旨在...

    C_本质论(中文版)

    ASP.NET是微软的Web应用开发平台,基于.NET框架,用于构建动态网站、Web应用和Web服务。它提供了一套完整的开发工具和框架,简化了网页开发流程,支持多种编程语言,如C#和VB.NET。ASP.NET中的Web Forms、MVC和Web ...

    .NET本质论(第1卷 公共语言运行库)

    这不仅包括了.NET如何加载和执行代码,还包括了如何实现跨语言的互操作、如何通过ADO.NET进行数据库访问,以及如何利用ASP.NET构建Web应用程序等内容。 通过阅读《.NET本质论》,开发者可以深入了解.NET Framework...

    C#本质论.第3版

    - 书中可能会包含实际项目案例,如创建Windows Forms应用、ASP.NET Web应用或WPF桌面应用,以实践所学知识。 《C#本质论》第三版全面覆盖了C#语言的核心概念和高级特性,结合.NET框架的使用,是一本深度和广度兼备...

    com本质论 源码和说明

    进一步学习COM,读者还会接触到ActiveX,它是COM的一个应用层面,主要用于Web和桌面应用程序的组件集成。ActiveX控件可以嵌入到网页中,提供丰富的用户界面功能。 总的来说,这个压缩包提供了从理论到实践的全面...

    c#本质论,一本不错的c#方面的电子书

    8. **Windows应用程序和Web应用程序开发**:涵盖了Windows Forms、WPF、ASP.NET等开发平台和框架,以及C#在构建桌面应用和Web服务中的应用。 9. **单元测试和持续集成**:讨论了如何使用NUnit、MSTest等工具进行...

    .NET本质论(Don Box经典力作)

    最后,书中还涉及到了.NET框架的服务,如ADO.NET用于数据库访问,ASP.NET用于构建Web应用程序,以及WCF(Windows Communication Foundation)和WF(Windows Workflow Foundation)用于分布式系统和工作流编程。...

    COM技术内幕和COM本质论.rar

    在深入探讨COM技术内幕与本质论之前,我们先来理解一下什么是COM。 COM是一种接口标准,允许不同编程语言编写的对象之间进行通信。它的核心概念是组件,这些组件可以被其他组件或应用程序引用和调用,而无需了解...

    xml本质论电子资源下载

    《XML本质论》这本书可能深入探讨了XML的基础概念、语法规范、解析机制以及在实际项目中的应用案例,帮助读者全面理解XML的各个方面。配合"CodePub.Com说明.txt",可能是提供了关于如何阅读和利用书中的代码示例或...

    COM本质论 潘爱民

    ### COM本质论——潘爱民 #### 知识点概览 1. **COM概述** - COM的历史和发展背景。 - COM的核心概念和技术特点。 2. **COM基础原理** - 对象、接口和类的概念。 - 接口查询机制。 - 引用计数管理。 3. **...

    C#本质论,基础,讲得还可以

    《C#本质论》这本书可能涵盖了以上部分或全部知识点,同时提供了实例和解析,帮助读者理解并应用这些概念。虽然提供的版本不是最新,但对于学习C#的基础知识仍然非常有价值,可作为提升编程技能的参考资料。通过深入...

    COM本质论简体中文版

    "COM本质论简体中文版"这本书很可能深入解析了COM的核心原理、设计思想以及如何在实际开发中应用COM。它涵盖了COM组件的创建、注册、使用,以及如何利用COM进行跨语言、跨平台的开发等内容。对于理解和掌握COM技术,...

    C#本质论源码(第4版)

    《C#本质论》是C#编程领域的一本经典著作,第4版更是结合了最新的C#语言特性,深入解析了C#的核心概念和技术。源码文件"EssentialCSharp-master"是配合书籍内容的实践代码,旨在帮助读者更好地理解和应用书中所讲述...

Global site tag (gtag.js) - Google Analytics