zoukankan      html  css  js  c++  java
  • SSH详解

    SSH不是一个框架,而是把多个框架(Struts、Spring以及Hibernate)紧密的结合在一起,用于构建灵活、易于扩展的多层Web应用程序【个人理解】

    主要分为表示层、业务逻辑层、数据持久层和实体层,下面详细讲解下这三个框架

    Struts的核心构成

    (1)Model
    由Action、ActionForm以及JavaBean组成,其中ActionForm用于将用户请求的参数,封装成为ActionForm对象,我们可以理解为实体,由ActionServlet转发给Action,Action处理用户请求,将处理结果返回到界面。
    (2)View
    该部分采用JSP+大量的taglib,实现页面的渲染。
    (3)Controller
    Controller是Struts的核心控制器,负责拦截用户请求,通过调用Model来实现处理用户请求的功能。

    Struts1实现MVC的模型图

    各个部分详解:

    struts-config.xml:配置ActionForm和Action
    web.xml:配置ActionServlet
    一、ActionServlet,前端控制器
    1、根据相应的规则截取Http请求的URL
    2、将Http请求分发到相应的Action处理

     1 <action
     2 attribute="report_chartForm"
     3 input="/WEB-INF/report_chart/chart-select.jsp"
     4 name="report_chartForm"
     5 parameter="P"
     6 path="/chart_select"
     7 validate="false"
     8 scope="request"
     9 type="com.operator.struts.action.Report_chartAction" > 
    10 <forward name="select" path="/WEB-INF/report_chart/chart-select.jsp"></forward> 
    11 </action> 

    提问:这里的attribute和name有什么用?
    解释:在struts实例化actionform的时候,有两种情况:如果已经存在,那么从内存中取回;如果第一次实例化,那么创建,并放入内存。这样就有一个问题了,struts是根据什么来取回并创建actionform的呢,答案就是attribute的值
    所以,struts是用attribute来取回并创建actionform,如果没指定,则用name。原因可看下面struts源码

     1 if ("request".equals(mapping.getScope())) {
     2 instance = (Actionform) request.getAttribute(attribute);
     3 } else {
     4 session = request.getSession();
     5 instance = (Actionform) session.getAttribute(attribute);
     6 }
     7 //如果未指定attribute就用name
     8 if (this.attribute == null) {
     9 return (this.name);
    10 } else {
    11 return (this.attribute);
    12 }

    二、ActionForm,相当于实体
    1、收集表单数据,将表单数据转换成相应的数据类型

    1 <form-bean name="user_registerForm" type="com.operator.struts.form.User_registerForm"/>

    三、Action,业务层控制器
    1、 取得表单数据
    2、调用业务逻辑
    3、返回转向信息

     Hibernate

    Hibernate是一个对象关系映射框架,它对JDBC进行了轻量级的封装,使得我们使用面向对象的思想操作关系型数据库。

    Spring

    博客园:http://www.cnblogs.com/zhuziyu/
    Copyright ©2018 不是植物
    【转载文章务必保留出处和署名,谢谢!】
  • 相关阅读:
    如何DIY陶瓷制作方法
    陶瓷的分类
    陶瓷
    机器视觉之——认知篇
    Halcon学习笔记(一)
    编程过程遇到的问题及解决方法
    前端技术——WebFont与Sprite
    HTML学习总结(四)【canvas绘图、WebGL、SVG】
    CSS3学习之——【特殊属性】
    HTML5学习总结——本地存储
  • 原文地址:https://www.cnblogs.com/zhuziyu/p/8481963.html
Copyright © 2011-2022 走看看