zoukankan      html  css  js  c++  java
  • SSH框架

    一. MVC

    1)概念:MVC是一种使用Model-View-Controller设计Web应用程序的模式

    2)组成:

    • Model ——业务逻辑层:应用层的程序核心,主要用于存储或者处理数据实现业务逻辑层对实体类相应数据库的操作。
    • View —— 表示层:用户接口层,将业务逻辑层的数据返回显示给用户
    • Controller —— 控制:处理用户交互

    3)业务逻辑:

    MVC作为表现模式:

    二. SSH集成框架:

    1)Struts:系统的整体基础架构,负责MVC分离。

    2)Hibernate:对持久层提供支持

    3)Spring:管理Struts和Hibernate

    具体做法:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO(Data Access Object)接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后Spring做管理。

    2.1 Struts

    SSH的基础框架,负责MVC分离:

    1. Model:

    实现业务逻辑层对实体类相应数据库的操作,分为两部分:

    • ActionForm:用户的Request请求参数封装成ActionForm对象,由ActionServlet装发给Action,Action根据ActionForm里面的请求参数处理用户的请求。
    • JavaBean:封装底层的业务逻辑,包括数据库访问等

    2. View:

    • 展示数据部分,该部分采用JSP(或者:HTML,PHP)实现。
    • Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。

    3. Controller:

    控制用户交互,主要分为两个部分:

    • ActionServlet:系统核心控制器。
      • 负责:拦截所有HTTP请求,然后根据请求决定是否要转给业务逻辑层
      • 继承:HttpServlet
    • Action:业务逻辑控制器。
      • 由用户提供
      • 该控制器负责接收ActionServlet的请求,并根据该请求调用模型的业务逻辑层方法处理请求,最后将处理结果返回给JSP页面显示

    2.2 Spring

    2. 基本业务流程

    1)在表示层中,首先通过JSP页面实现交互界面,负责接收请求(Request)和传送响应(Response),

     然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理。

    2)在业务层中,管理服务组件的Spring IoC容器负责向Action提供业务模型(Model)组件和该组件的协作对象数据处理(DAO)组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性。

    3)在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果。

    3. 优点

    不仅实现了视图、控制器和模型的彻底分离,还实现了业务逻辑层与持久层的分离。这样无论前端如何变化,模型层只需很少的改动,并且数据库的变化也不会对前端有所影响,大大提高了系统的可复用性。而且由于不同层之间耦合度小,有利于团队成员并行工作,大大提高了开发效率。

    PS:

    三. JavaBean

    3.1. 概念:

    JavaBean完成特定功能的组件,是符合一定规范编写的Java类。——对应数据库

    Bean保存数据的实体,通常与数据库中的表对应,也称为:entity,domain,pojo,比如:apple,person。

    简单JavaBean:如果在一个类中只包含属性、setter、getter方法。对于简单的JavaBean几个名词:

    (1)VO:与简单Java对象对应,专门用于传递值的操作上

    (2)POJO:简单Java对象

    (3)TO:传输对象,进行远程传输时,对象所在的类必须实现java.io.Serializable接口。

    3.2. 规范:

    1)所有属性为private

    2)提供默认构造方法

    3)提供getter()和setter()方法

    4)实现serializabel 接口

    import java.io.Serializable;

    package blog.csdn.joywy;  
    //必须实现Serializable接口
    public class SimpleBean implements Serializable{  
        // 属性都必须为:private
        private String name;  
        private int age;  
        
        //有public的setter()和getter()方法
        public void setName(String name){  
            this.name = name;  
        }  
        public void setAge(int age){  
            this.age = age;  
        }  
        public String getName(){  
            return this.name;  
        }  
        public int getAge(){  
            return this.age;  
        }  
    }  

    3.2 WEB开发的标准目录结构

    3.3 JSP & JavaBean

    在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁,并且实现了HTML和Java代码分离,有利于日后维护。

    1.打包编译:编译时直接使用javac -d . SimpleBean.java命令根据package的定义打包编译。

    2.Tomcat中classpath的配置:

    所有的class要进行访问时都必须在classpath中进行配置,在Tomcat中依然可以使用,在Web开发中,Tomcat安装目录的lib文件夹、WEB-INFclasses和WEB-INFlib文件夹实际上都表示了classpath,所以直接将类或jar包复制到这些文件夹中就可以直接使用了。

     1 <%@ page contentType="text/html" pageEncoding="GBK"%>  
     2 <%@ page import="blog.csdn.joywy.*"%>    <!-- 导入blog.csdn.joywy包 -->  
     3 <html>  
     4 <head><title>欢迎来到望星空</title></head>  
     5 <body>  
     6 <%  
     7     SimpleBean simple = new SimpleBean();    //声明并实例化SimpleBean对象  
     8     simple.setName("Joywy");                 //设置name属性  
     9     simple.setAge(23);                       //设置age属性  
    10 %>  
    11 <h3>姓名:<%=simple.getName()%></h3>            <!-- 输出name属性的内容 -->  
    12 <h3>年龄:<%=simple.getAge()%></h3>             <!-- 输出age属性的内容 -->  
    13 </body>  
    14 </html>  

    使用<jsp:useBean>:

    除了使用import的语句之外,也可以使用JSP中提供的:<jsp:useBean>指令完成操作,指令的操作语法如下所示:

    1. <jsp:useBean id="实例化对象名称" scope=“保存范围” class=“包.类名称“/>

    2. 主要属性:

    (1)id:表示实例化对象的名称

    (2)scope:表示此对象保存的范围,一共有四种属性范围:page、request、session、application

    (3)class:对象所对应的包.类名称

     1 <%@ page contentType="text/html" pageEncoding="GBK"%>  
     2 <jsp:useBean id="simple" scope="page" class="blog.csdn.joywy.SimpleBean"/>  
     3 <html>  
     4 <head><title>欢迎来到望星空</title></head>  
     5 <body>  
     6 <%  
     7     simple.setName("Joywy");  
     8     simple.setAge(23);  
     9 %>  
    10 <h3>姓名:<%=simple.getName()%></h3>  
    11 <h3>年龄:<%=simple.getAge()%></h3>  
    12 </body>  
    13 </html>  

    在使用<jsp:useBean/>指令时,实际上会默认调用SimpleBean类中的无参构造方法进行对象实例化,当修改SimpleBean.java文件后,如果要想让其起作用,则需要重新启动服务器,我们可以通过在Tomcat中直接配置自动加载的操作,这样即使不重新启动服务器,JavaBean修改后也可以被立即加载进来。重新加载的配置如下:在Tomcat安装目录下conf/server.xml文件中进行配置

    <Context path="/joywy" docBase="D:myweb" reloadable="true"/>  
  • 相关阅读:
    解决Xcode 证书过期问题
    Parallel Desktop 问题汇总
    CMS系统学习笔记
    git pull报错 error: Your local changes to the following files would be overwritten by merge
    Mac安装Homebrew
    使用nvm-windows安装NodeJs遇到的问题: Could not retrieve https://nodejs.org/dist/latest/SHASUMS256.txt.
    HTB-靶机-Luke
    HTB-靶机-Fortune
    HTB-靶机-Ypuffy
    HTB-靶机-Sunday
  • 原文地址:https://www.cnblogs.com/lesleysbw/p/6209287.html
Copyright © 2011-2022 走看看