java web框架struts_Struts框架在Web开发中的应用

本文深入介绍了Struts框架在Web开发中的应用,详细阐述了Struts框架的架构原理、核心组件及其实现MVC设计模式的方法。并通过具体示例展示了如何使用Struts进行Web应用程序的开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《Struts框架在Web开发中的应用》由会员分享,可在线阅读,更多相关《Struts框架在Web开发中的应用(29页珍藏版)》请在人人文库网上搜索。

1、Struts,框架在,Web,开发中的应用,周,强,Struts,框架介绍,Struts,是,Apache Jakarta,项目于,2001,年推出的一个,开源,Java Web,框架,Struts,很好地实现了,MVC,模型、视图和控制器,设计,模式。通过一个配置文件,把各个层面的应用组件联,系起来,使组件在程序层面上联系较少,耦合度较低,大大提高了应用程序的可维护性和可扩展性,Page 1,Jsp 1,Jsp 2,Jsp 3,Web Browser,Jsp Engine,Form,Bean,1,request/session,Form,Bean,2,Other,Bean,1,View,La。

2、yer,Controller,Struts,config,xml,Mappings,path,action,form bean,forwards,Action1,java,Action2,java,Action3,java,Action4,java,Business,Bean 1,Business,Bean 2,Business,Bean 3,Business,Logic,Layer,Data,Layer,Business Data,Struts,的优点,优点,1,2,3,Struts,是开源软件,这是它的一大优点,使,开发者能深入了解内部实现机制,页面导航,这是今后的一个发展方向,这样,会使。

3、系统的脉络更加清晰。通过一个配置文,件,就可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处,采用,taglib,taglib,是,Struts,的标记库,灵,活运用,能大大提高开发效率,缺点,1,taglib,需要一个持续学习的过程,ActionServlet,类,org.apache.struts.action.ActionServlet,类,继,承了,javax.servlet.http.HttpServlet,类,是,Struts,框架的核心控制器组件,Struts,的启动从加载,ActionServlet,开始,ActionServlet,第一次被加载时,其,init(,。

4、方法被调,用。在,init(,方法中,Struts,框架执行所有必要的初,始化工作,ActionServlet,在,web.xml,中的配置,action,org.apache.struts.action.ActionServlet,config,WEB-INF/struts-config.xml,action,.do,ActionServlet,在,web.xml,中的配置,Struts,的配置文件,struts-config.xml,作为,ActionServlet,的一个初始化参数值在,web.xml,文件中,声明,ActionServlet,的,URL,形式是,do”,这样,当在浏,览。

5、器地址输入任何后缀为”.do”的,URL,时,都会映射,到,ActionServlet,struts-config.xml,的主要元素,元素名,元素的作用,根元素,描述一组,ActionForm,对象,message,resources,描述一组,Action,对象,定义在整个应用程序内可见的全局转发,配置消息资源文件,以在应用的客户端界,面中输出本地化消息文本,登录系统示例,示例的配置文件,from,bean name=“loginActionForm” type=“login.loginActionFrom”,action name=“loginActionForm” type=“logi。

6、n.loginAction,validate=“false” input=“/login.jsp,scope=“request” path=“/loginAction,struts-config.xml,元素,from,bean name=“loginActionForm,type=“login.loginActionFrom”,name,指定该,ActionForm,的唯一标识名,Struts,框架用,该标识来引用这个,form bean,type,指定,ActionForm,的完整类路径和类名,struts-config.xml,元素,action name=“loginActionFor。

7、m” type=“login.loginAction,validate=“false” input=“/login.jsp,scope=“request” path=“/loginAction,name,指定同该,Action,关联的,form bean,的引用标识,type,指定该,Action,类的完整类路径和类名,validate,指定是否调用,form bean,的,validate(,验证表单的数据,input,指定表单输入页面的,URL,路径。当表单验证失败时将请求转发,到该,URL,scope,指定同该,Action,类关联的,form bean,的存在范围,path,指定,Ac。

8、tion,的访问路径,以”/”开头,forward,指定局部转发项,Struts,应用程序处理用户请求的流程,ActionServlet,类作为中心,Servlet,负责处理所有到,来的用户请求。当,ActionServlet,接收到一个用户请求,时,执行如下流程,1,检索和用户请求匹配的,ActionMapping,实例,如果,不存在,就返回用户请求路径无效的错误信息,2,如果为,ActionMapping,配置了,form bean,则获取相,应范围的,ActionForm,实例。如果,ActionForm,实例不存,在,就创建一个,ActionForm,对象,把客户提交的表单,数据保存到。

9、,ActionForm,对象中,3,根据,ActionMapping,配置信息决定是否需要验证表,单。如果需要验证,就调用,ActionForm,的,validate(,方法,4,如果,ActionForm,的,validate(,方法返回,null,或者,返回一个不包含任何,ActionMessage,的,ActionErrors,对,象,就,Struts,应用程序处理用户请求的流程,就表明表单验证成功,继续执行下一步,否则返回,input,属,性指定的页面,并向用户显示,ActionErrors,集合中的错误信,息,5,ActionServlet,根据,ActionMapping,实例包含。

10、的映射信息,决定将请求转发给哪个,Action,如果相应的,Action,实例不存,在,则先创建这个实例,然后调用,Action,的,execute(,方法,6,Action,的,execute(,方法返回一个,ActionForward,对象,ActionServlet,将请求转发到这个,ActionForward,对象指向的组,件,通常是一个,JSP,组件或别的,Action,7,如果,ActionForward,对象指向一个,JSP,组件,则将该,JSP,生成,的动态页面返回给用户;如果,ActionForward,对象指向的还是,Action,则进入第,1,步重新执行,Action,类。

11、,org.apache.struts.action.Action,类是,Struts,的心脏,也是客户请求和业务操作间的桥梁,在,Struts,应用程序中,具体的,Action,子类需要扩展,Action,类,以提供,execute(,方法的实现,execute(,方法有,4,个参数,ActionMapping,对象,ActionForm,对象,HttpServletRequest,对象和,HttpServletResponse,对象,ActionForm,对象封装了表单数据,Action,类可以通过,getter,方法从该对象获得表单数据,Action,类又通过,ActionMapping,。

12、对象的,findForward(,方法获得一个,ActionForward,对象,然后把处理结果转发到,ActionForward,对象所指的目标,示例的,LoginAction,类,public class LoginAction extends Action,public ActionForward execute(ActionMapping actionMapping,HttpServletRequest request,HttpServletResponse response),LoginActionForm loginForm = (LoginActionForm)actionFor。

13、m,String username = loginForm.getUsername(,String password =loginForm.getPassword(,HttpSession session = request.getSession(true,session.setAttribute(“username”,username,ArrayList arr = new ArrayList(,arr.add(username); arr.add(password,String prompt,loginHandler login = new loginHandler(,boolean ma。

14、rk = login.checkLogin(arr,if (mark) prompt = “success”; else prompt=“fail,return actionMapping.findForward(prompt,此类继承了,Action,类,ActionMapping,类,ActionMapping,存储了与特定用户请求对应的特定,Action,的相关信,息,例如输入页面、转发页面等,ActionServlet,将,ActionMapping,传送到,Action,类的,execute(,方法,然后,Action,将调用,ActionMapping,的,findForward(。

15、,方法,此方法返回一个指定名称的,ActionForward,这样,Action,就完成了本地转发,ActionForward,类,ActionForward,对象代表一个,web,资源的逻辑抽象表示形式,这里,的,web,资源是,JSP,或,Servlet,ActionForward,是该资源的包装类,实际的,web,资源在配置文件,struts-config.xml,中指定,如,forward,元素的,name,path,属性,ActionForm,类,ActionForm,类是,Struts,框架的核心组件之一,是,Struts,的关键视图组件,ActionForm,本质上是一种,Jav。

16、aBean,是专门用来传递,表单数据的对象。它包括用于表单数据验证的,validate(,方法和用于数据复位的,reset(,方法,在登录系统中,登录页面会有一个用户名输入框和密,码输入框,以及用来提交登录请求的按钮。当用户提,交登录请求后,Struts,把用户名和密码两个输入域的,数据自动填充到相应的,ActionForm,对象中,然后控制,层可以从该,ActionFrom,对象中读取用户输入的表单数,据,也可以把来自模型层的数据存放到,ActionForm,中,然后返回给视图显示,控制器接收请求,ActionForm,的作用机理,从,request,或,session,中取出,Action。

17、Form,实例,如果实例不存在,则创建新实例,调用,ActionForm,的,reset(,方法,将,ActionForm,实例保存到,request,或,session,中,只有当配置文件,中,元素的,validate,设置为,true,才会调用,validate(,方法,将请求的表单数据填充到,ActionForm,找到错误,调用,ActionForm,的,validate(,方法验证表单数据,没有发现错误,转发回配置文件中,元素的,input,属性所指的资源,将,ActionForm,实例作为参数,传递给,Action,的,execute(,方法,将处理结果转发到配置文件中,元素,pat。

18、h,属性所指的资源,示例的,LoginActionForm,类,public class LoginActionForm extends ActionForm,private String username,private String password,public String getUsername(),return username,public void setUsername(String username),this.username = username,public ActionErrors validate(ActionMapping,actionMapping,HttpS。

19、ervletRequest httpServletRequest),此类继承了类,ActionForm,Struts,常用标记库,Struts,提供的自定义标记库主要分成以下几类,1,HTML,标记:用来生成,HTML,标记,在表单中显示数据,2,Bean,标记:用来在,JSP,页中管理,bean,3,Logic,标记:用来在,JSP,页中控制流程,以下就介绍,HTML,标记,HTML,标记,标记的主要属性,属性,action,描述,与表单相关的操作,method,onreset,onsubmit,scope,type,表单使用的,HTTP,方法,表单复位时的,JavaScript,事件句柄,。

20、表单提交时的,JavaScrpt,事件句柄,搜索,ActionFormBean,的范围。如果没有设置,将从,配置文件中获取,ActionFormBean,的完整名称。如果没有设置,将从,配置文件中获取,示例,HTML,标记,名字,按钮标记,取消按钮,标签,复位按钮,提交按钮,文本标记,文本区标记,检查框标记,HTML,标记,名字,复选框标记,文件标记,单选钮标记,隐藏标记,密码标记,选择标记,选项标记,标签,登录系统示例,谢,谢,Page 1,Jsp 1,Jsp 2,Jsp 3,Web Browser,pure HTML sent to,browser,processes custom tag。

21、s,fill form elements,from beans, display internationalized,request/session,messages,Form,Bean,1,Web Server,incoming requests,Jsp Engine,relevant page called,reads on start-up,Struts,config,xml,Controller,Mappings,if submit, auto,creates/reuses any,populates form bean,associated form bean,from reques。

22、t params,Form,Bean,2,Other,Bean,1,View,Layer,looks up path to,creates,passes control to,determine action,returns appropriate,form bean,relevant action to handle,forward,path,action,form bean,forwards,Action1,java,Action2,java,Action3,java,Action4,java,gets data to display (adds to beans in,interacts with lower layers,request/session)or saves data from,acts as adaptor between,beans via business rules,HTTP and layers below,Business,Business,Bean 1,Bean 2,Business,Bean 3,Business,Logic,Layer,Data,Layer,Business Data。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值