发表于: 2018-02-02 23:29:25

1 561



今天继续来完昨天没完成的,Struts的学习:

1.概念:轻量级的MVC框架,主要解决了请求分发的问题,重心在控制层和表现层。低侵入性,与业务代码的耦合度很低。Struts2实现了MVC,并提供了一系列API,采用模式化方式简化业务开发过程。

2.与Servlet对比

    优点:业务代码解耦,提高开发效率

    缺点:执行效率偏低,需要使用反射、解析XML等技术手段,结构复杂

3.不同框架实现MVC的方式

Servlet:

Spring:

Struts2:

这里对MVC做一个回顾:MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

MVC指MVC模式的某种框架,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。最典型的MVC就是JSP + servlet + javabean的模式


框架和设计模式的区别
有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式。实际上它们完全是不同的概念。
框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。

框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。


Struts2使用

1.使用步骤

    导入Struts2核心jar包

    在web.xml配置前端控制器filter

<filter>
    <filter-name>Struts2</fileter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>Struts2</filter-name>
    <url-pattern>/*</url-pattern>
<filter-mapping>


创建struts.xml(格式可以参考核心包根路径下的DTD文件,struts-default.xml

    编写控制器Action

      - 方法是public的

      - 返回值为String类型(返回值与struts.xml->action->result的name属性匹配,即根据此返回值找到对应result)

      - 参数列表为空

    创建JSP页面

    配置struts.xml

<struts>
    <!--
        package:包,用于对Action进行封装
        name:包名,根元素下可以有多个包,彼此不能重名
        extends:继承,用于指定继承的包,相当于将继承包下的配置信息复制到当前包
        namespace:命名空间,用于规定Action的访问路径,必须“/”开头    -->
    <package name="test01" namespace="/test01" extends="struts-default">
        <!--action:业务控制器,用于注册业务控制器组件
            name:action名称,用于规定Action的访问路径
            class:业务控制器组件,用于指定业务控制器对应的类
            method:方法,用于指定访问当前action时要调用的方法
            *请求URL:http://ip:port/projectName/namespace/ActionName.action
        -->
        <action name="hello" class="test01.konrad.action.HelloAction" method="execute">
            <!--result:输出组件,用于转发、重定向、直接输出
                name:名称,一个action下可以有多个result,彼此不能重名
                默认值转发,元素内设置转发的页面
            -->
            <result name="success">
                /hello.jsp
            </result>
        </action>
    </package>
</struts>

参数传递

1.Action从页面取值  

    a)基本属性注入(页面,Action)

2.页面从Action取值

    a)使用EL表达式


学习框架,最重要的还是知道它是怎么工作的,知道它的运行原理。


接下来就是IDEA里面git的使用!

我们还是首先确认我们已经成功安装了git


从IDEA下载一个工程

步骤一:菜单->VCS->Chekout from Version Control->GitHub

步骤二:输入项目参数:

Git Repositor URL:https://github.com/YUYI996/higit.git
Parent Directory: d:\project
Directory Name: higit

步骤三:higit项目


把本地项目创建在github上

步骤一:首先在github创建一个仓库

输入名称:


得到地址:https://github.com/YUYI1996/helloworld.git


在本地创建项目

public class helloworld {
public static void main(String[] args){
System.out.println("Hello World!");
}
}


右键项目->Git->Add

右键项目->Git->Commit Directory之后弹出如图所示的窗口,在Commit Message 输入 HelloWorld, 然后点击 Commit And Push



刷新https://github.com/YUYI1996/helloworld




明天计划完成的事情:继续完成服务器的学习;


师兄,服务器是买基础版的吧?


返回列表 返回列表
评论

    分享到