zoukankan      html  css  js  c++  java
  • struts采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架

    今天我用Ecipse搭建Struts框架,并且使用Struts框架编写一个最简单的例子,相信读者能够很容易的明白。

    Struts是当今Java比较流行的三大框架之一,三大框架是Struts,spring,hibernate。Struts框架也包括Struts1和Struts2,由于两个版本相差比较大,Struts1已经被淘汰,现在企业基本上全部都用Struts2,所以我当然也是用Struts2。

    好,下面我详细的说明搭建过程

    首先启动Eclipse J2EE版本(官方最近发布的版本),创建一个web项目Struts2
    图片

    引入我们下载的Struts2的目录下的Jar包,

    具体目录如下

    图片

    将这些Jar包导入到项目的lib目录下
    图片

    然后打开上层目录的web.xml配置文件
    图片

    将filter和filter-mapping两个标签对的内容copy到Struts2项目的web.xml
    图片

    然后,想下图(据图根路径看你Struts的位置)指定路径的struts.xml考到项目的src目录下
    图片

    如图
    图片

    打开strut.xml,将<struts>标签对中的全部内容删除或者注释,建议注释

    然后从注释的部分copy一下内容到struts中

    内容

    <constant name="struts.devMode" value="false" /> 
     <package name="default" namespace="/" extends="struts-default">
            <default-action-ref name="index" />
            <action name="index">
                <result type="redirectAction">
                    <param name="actionName">HelloWorld</param>
                    <param name="namespace">/example</param>
                </result>
            </action>
        </package>

    然后将第一句<constant name="struts.devMode" value="false" /> 
    改为<constant name="struts.devMode" value="true" />

    这句话主要是说,当我们项目的action的改变时,可以立刻响应改变,不需要重启服务器

    结果为
    图片

    到此Strut2的配置已经完成,可以写例子了

    我这里就写一个最简单的例子在网页上 打印 hello Struts2!

    首先在项目的webContent目录下创建一个JSP文件index.jsp

    并更改代码如下
    图片

    然后将项目中的struts.xml的代码更改为
    图片

    这段代码我等下再给大家介绍

    ok,启动服务器,打开浏览器,输入网址http://localhost/Struts2/hello

    结果为
    图片

    实验成功!!!

    说明:

    大家看到了,现在我们访问的地址是http://localhost/Struts2/hello,并不是直接访问http://localhost/Struts2/index.jsp

    我把流程画一下
    图片

    当客户端访问时,服务器通过过滤器filter,然后根据action得到客户端访问的jsp页面,然后将jsp页面反馈给客户端。

    无形当中把jsp和客户端分开,这样做有什么好处呢?直接访问jsp不更加简单吗,干么弄得这么复杂?

    这根设计模式是一样的,复杂的东西背后带来的好处就是可拓展

    大家不妨想想,如果是直接访问jsp,如果我们需要更改jsp中的内容(这是经常需要更改的部分),我个人认为除了暂时停止服务以外,然后更改代码,否则没有什么办法!但是这是很要命的!

    但是我们如果引入的action这个中间层,因为客户端并没有和jsp有什么直接联系,所以只要action改变,即可立刻更换jsp,或者action不变,直接更换jsp文件,即可,不需要付出任何代价。

    这就是struts的核心思想,与MVC思想非常类似。

    好,我的发表到此结束。相信读者能够很轻易的体会这个思想。

  • 相关阅读:
    批量新增百万条数据 十百万条数据
    sqlserver 组内排序
    EF ++属性会更新实体
    Entity Framework Core: A second operation started on this context before a previous operation completed
    abp Cannot access a disposed object. A common cause of this error is disposing
    abp xunit Can not register IHostingEnvironment. It should be a non-abstract class. If not, it should be registered before.”
    hangfire enqueued but not processing(hangfire 定时任务入队列但不执行)
    EF 更新实体 The instance of entity type 'BabyEvent' cannot be tracked because another instance
    datatable to entiy list 不支持可空类型和枚举类型
    webapi 设置不显示接口到swaggerUI
  • 原文地址:https://www.cnblogs.com/timssd/p/4285204.html
Copyright © 2011-2022 走看看