StrutsMVC框架
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|session(默认值)">
<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,写自定义Action,实体,以及业务类
分享到:
相关推荐
第一次:10 分钟, 第二次:30分钟, 第三次:4 小时 第四次:12小时 第五次:24小时 第六次:3 天 第七次:7 天 之后 :每15天 当然如果没有及时更新复习的话,下一次的复习更新时间会在上一次复习更新后顺延。 ...
- 第一天:可能涵盖了Struts的基本概念,如MVC模式、Struts架构、配置文件(struts-config.xml)等。 - 第二天:可能深入讲解了Action类、Form Beans、ActionMapping和ActionForward等关键概念。 - 第三天:可能...
在Ajax更新复习次数时通常都会第一次失败,再点一次就能成功了,第一次失败是因为Request 取到了NULL值,因为对三大框架无缝组合还不太熟悉,如果你知识别忘了告诉我哦(yukiceo@126.com) 由于对页面样式了解不多...
第一次:10 分钟, 第二次:30分钟, 第三次:4 小时 第四次:12小时 第五次:24小时 第六次:3 天 第七次:7 天 之后 :每15天 当然如果没有及时更新复习的话,下一次的复习更新时间会在上一次复习更新后顺延。 ...
【文件名称列表】虽然未提供具体的文件名,但通常这样的教程会包含多个PPT文件,每个文件可能对应课程的不同章节,如"第一天:Java语言基础"、"第二天:Servlet介绍"、"第三天:JSP基本语法"等,逐步深入,逐步引导...
1. 第一天,复习JAVA基础,引入JDBC概念,学习如何用JAVA连接数据库,安装并熟悉MySql和Myeclipse。 2. 第二天,通过实例学习数据库操作,包括表的创建、查询等,熟练掌握Myeclipse,初步理解JDBC。 3. 第三天,深化...
这一天的课程可能进一步讲解了Servlet生命周期、init()、service()、destroy()方法的使用,以及如何在Servlet中处理GET和POST请求。 2. **JSP(JavaServer Pages)**:JSP是Servlet的另一种表现形式,更方便于视...
第一部分是J2SE(Java 2 Standard Edition)的学习,占据了13天的时间。这一阶段主要是学习Java的基础知识,包括语法、类和对象的概念、异常处理等。通过完成chat、tank和snake这三个项目,学员可以实践并巩固所学的...
- **C: WEEK**:此选项用于获取指定日期是一周中的哪一天,并不适用本题情境。 - **D: DAY**:虽然有些框架或API中可能会有类似的命名,但在标准Java API中,这并不是一个明确的方法名称。 **结论**:在Java中,...
首先,实习生在第一天接触了Java语言,了解到其优势,如简洁性、面向对象、多线程、分布性以及安全性。这些特性使得Java成为企业级应用开发的首选语言。在接下来的日子里,实习生通过复习和实践,掌握了Java的编程...
通过"java_spring_day01_1.xps"至"java_spring_day05_5.xps"这些课件,学习者可以系统地从第一天开始,逐步深入Spring的世界,了解每个组件的功能和使用方法,最终掌握Spring的全貌,为实际项目开发打下坚实基础。...
- 当月最后一天:使用Calendar类设置日期到下个月第一天,然后减去一天。 - 格式化日期:使用SimpleDateFormat类。 二、JSP&Servlet技术 1. JSP是动态网页,Servlet是服务器端程序,它们都能处理HTTP请求。JSP...
- **《21天学通JavaScript(第2版)》** 和 **《JavaScript动态网页开发案例指导》** 则通过丰富的案例帮助读者快速掌握 JavaScript 的核心概念和技术。 通过以上资源的学习,无论是初学者还是有一定经验的开发者,...