Java之SSH框架学习笔记

最近处理的几个项目都是用Java语言编写的,学习一下。

Web.xml配置文件

Listener

为web应用程序定义监听器,监听器用来监听各种事件,比如:application和session事件,所有的监听器按照相同的方式定义,功能取决去它们各自实现的接口,常用的Web事件接口有如下几个:

  • ServletContextListener:用于监听Web应用的启动和关闭;
  • ServletContextAttributeListener:用于监听ServletContext范围(application)内属性的改变;
  • ServletRequestListener:用于监听用户的请求;
  • ServletRequestAttributeListener:用于监听ServletRequest范围(request)内属性的改变;
  • HttpSessionListener:用于监听用户session的开始和结束;
  • HttpSessionAttributeListener:用于监听HttpSession范围(session)内属性的改变。

主要用于监听Web应用事件,其中有两个比较重要的WEB应用事件:应用的启动和停止(starting up or shutting down)和Session的创建和失效(created or destroyed)。

Filter

Filter可认为是Servle的一种“加强版”,主要用于对用户请求request进行预处理,也可以对Response进行后处理,是个典型的处理链。使用Filter的完整流程是:Filter对用户请求进行预处理,接着将请求HttpServletRequest交给Servlet进行处理并生成响应,最后Filter再对服务器响应HttpServletResponse进行后处理。Filter与Servlet具有完全相同的生命周期,且Filter也可以通过来配置初始化参数,获取Filter的初始化参数则使用FilterConfig的getInitParameter()。

换种说法,Servlet里有request和response两个对象,Filter能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response,Filter其实是一个Servlet链。

以下是Filter的一些常见应用场合:

  • 认证Filter
  • 日志和审核Filter
  • 图片转换Filter
  • 数据压缩Filter
  • 密码Filter
  • 令牌Filter
  • 触发资源访问事件的Filter
  • XSLT Filter
  • 媒体类型链Filter

Servlet

Servlet通常称为服务器端小程序,是运行在服务器端的程序,用于处理及响应客户的请求。Servlet是个特殊的java类,继承于HttpServlet。客户端通常只有GET和POST两种请求方式,Servlet为了响应则两种请求,必须重写doGet()和doPost()方法。

Bean

JavaBeans是Java中一种特殊的类,可以将多个对象封装到一个对象(bean)中。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。名称中的“Bean”是用于Java的可重用软件组件的惯用叫法。

Web.xml加载顺序

总的来说,web.xml的加载顺序是:->->->。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。

对于某类元素而言,与它们出现的顺序是有关的。以为例,web.xml中当然可以定义多个,与相关的一个元素是,注意,对于拥有相同元素而言,必须出现在之后,否则当解析到时,它所对应的还未定义。web容器启动初始化每个时,按照出现的顺序来初始化的,当请求资源匹配多个时,拦截资源是按照元素出现的顺序来依次调用doFilter()方法的。类似,此处不再赘述。

Servlet里有request和response两个对象,Filter能够在一个request到达Servlet之前预处理request,也可以在离开Servlet时处理response,Filter其实是一个Servlet链。

Struct2

请参考Struct2 基础介绍

Struct2工作流程

图1 Struct2工作流程

Spring

请参考Spring MVC 解析之 DispatcherServlet

Spring工作流程

图2 Spring工作流程

参考链接

  1. web.xml 配置文件 超详细说明!!! ,by 吴川华仔.
  2. web.xml文件中加载顺序的优先级 ,by laolu0837.
  3. Spring 、SpringMVC 、Struts2之间的区别,by 刘二雄.
  4. Struct2 基础介绍 ,by shiyuan310.
  5. 深入Struts2的过滤器FilterDispatcher–中文乱码及字符编码过滤器,by 关键步就几步.
  6. Spring整合Struts2步骤及完整实例,by Star_Ship.
  7. Spring和struts2整合详解,by Damon.
  8. spring整合struts2过程详解,by 西西嘛呦.
  9. Spring MVC 解析之 DispatcherServlet,by 摆码王子.
  10. 一文读懂SpringMVC工作流程,by Wizey.
  11. servlet的url-pattern匹配规则详细描述,by 51kata.
  12. Listener,Filter,Servlet执行顺序和生命周期,by laolu0837.
  13. springmvc 的参数绑定,springmvc和 struts2的区别,by 双斜杠少年.
  14. 如何集成Struts和Spring,by gxhsnowflower.
  15. Struts2和Spring集成,by yiibai.
  16. Spring 和 Struts 集成,by 王如霜.