代码改变世界

Web应用本质 二年陈

2011-02-01 15:53  hanwesley  阅读(204)  评论(0编辑  收藏  举报

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特别有用。通过它也可以观测到一些不明显的错误,而这些错误可能无法在浏览器中直接表现出来。