Struts MVC 框架 (让你一步步成为高手)





web应用的分层


交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。(V,C)


处理层,完成数据的处理,也就是业务层(M)。

MVC设计模式(应用观察者模式的框架模式)

M model,模型,操作数据的业务处理层。

V view,示图,采集和显示数据,为业务层提供数据,表现业务层输出的数据,只关心数据的类型,不管新数据的来源。

C ctrl,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。


MVC框架的实现模型


模型一:


JSP+JavaBean,JSP既充当控制,又充当视图,以页面为核心,JSP使用jsp:useBean,他不能够实现不同的页面,显示不同的数据,需要借助于中间类来调用JavaBean的方法才能实现。

模型二:

JSP+Servlet+JavaBean,以控制为核心,JSP只负责显示和收集数据,sevlet,连接视图和模型,将视图层数据,发送给模型层,JavaBean,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。

StrutsMVC框架

Struts是使用MVC的实现模式二来实现的,也就是以控制器为核心。

Struts提供了一些组件使用MVC开发应用程序:


Model:Struts没有提供model类。这个商业逻辑必须由Web应用程序的开发者以JavaBean或EJB的形式提供

View:Struts提供了action form创建form bean, 用于在controller和view间传输数据。此外,Struts提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。

Controller:Struts提供了一个核心的控制器ActionServlet,通过这个核心的控制器来调用其他用户注册了的自定义的控制器Action,自定义Action需要符合Struts的自定义Action规范,还需要在struts-config.xml的特定配置文件中进行配置,接收JSP输入字段形成Action form,然后调用一个Action控制器。Action控制器中提供了model的逻辑接口。


写一个基于Struts的web应用

1,创建一个符合标准的web应用的结构,也就是一个有WEB-INF文件夹的应用文件夹,在应用中需要使用到Struts的一些jar文件,要放到WEB-INF的lib文件夹下,这些jar文件都在struts的zip文件中的/struts-1.2.9-bin/lib下还有struts-1.2.9-bin/contrib/struts-el/lib下的standard.jar、jstl.jar和struts-el.jar。

2,在web.xml中配置Struts的核心控制器ActionServlet,并指明Struts的配置文件的所在位置WEB-INF下,在struts的文件中有一个样板的web.xml文件,使用这个web.xml文件来部署应用就可以了 ,这个样板在struts的zip文件中的struts-1.2.9-src.zip文件中的web/examples/WEB-INF/web.xml就是样板文件。部署应用看struts是否发布成功。

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>

</servlet>


<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>


3,写jsp页面和业务,实体,和自定义控制器类Action,自定义Action是要继承于Action类

例:
import org.apache.struts.action.*;
import javax.servlet.http.*;

public class LoginAction extends Action{
public ActionForward execute(ActionMapping mapping, ActionForm form,

         HttpServletRequest request,HttpServletResponse response) throws Exception
        {

       if(request.getParameter("username").equals("admin")&&

                     request.getParameter("passwd").equals("123")){


    return mapping.findForward("success");


    }


    return mapping.findForward("fail");


    }


}


在struts-config.xml文件中的配置,解析配置文件中,配置文件的action标签就会被映射成ActionMapping对象。


<struts-config>
  <form-beans>
     <form-bean name="xxx" type="ActionForm的类全名">
     <form-bean name="LoginForm" type="basic.LoginForm">
  </form-beans>
  <action-mappings>


     <action path="/basic/login"  type="alan.struts.basic.LoginAction" 
  name="xxx" scope="request|sessio(默认值)">
        <forward name="success" path="/basic/success.jsp"/>
        <forward name="fail" path="/basic/fail.jsp" redirect="false"(重定向,默认false)/>
      </action>

    <action path="action的路径,在form的action中写的那个路径" type="action的类全名">
      <forward name="在自定义的Action中使用的findForward方法的参数" path="跳转页面的路径"/>
      <forward name="xxx" path="xxx/xxx.jsp"/>
    </action>

  </action-mappings>

</struts-config>






ActionForm是可以自动将表单中的数据封装成对象,当然,一个自定义ActionForm也是要遵守Struts规范的,也就是要继承于ActionForm,并在以上的struts-config.xml进行配置。

ServletController(ActionServlet和自定义的Action),配置Ctrler需要配置struts-config.xml,通过客户端form的action来查找调用相应的action,自定义action中的mapping对应的是配置文件中的forward标签,通过forward的path属性来跳转到相应的路径。


基于struts的web应用的开发步骤


1,对应用环境进行配置

2,创建web应用的结构,需要将struts应用的jar文件进行部署。

3,在web服务器部署struts

4,配置struts-config.xml文件,配置Actoin

5&

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值