尚学堂Struts201

上传人:大米 文档编号:567628508 上传时间:2024-07-21 格式:PPT 页数:33 大小:1.69MB
返回 下载 相关 举报
尚学堂Struts201_第1页
第1页 / 共33页
尚学堂Struts201_第2页
第2页 / 共33页
尚学堂Struts201_第3页
第3页 / 共33页
尚学堂Struts201_第4页
第4页 / 共33页
尚学堂Struts201_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《尚学堂Struts201》由会员分享,可在线阅读,更多相关《尚学堂Struts201(33页珍藏版)》请在金锄头文库上搜索。

1、尚学堂 手把手教程授课:王勇授课:王勇版权所有:尚学堂科技Struts+Hibernate+SpringStruts2第一次课:Struts2与控制器Action手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂课程目标框架技术概述深入理解MVC模式自定义MVC框架Struts2介绍与环境搭建我的第一个Struts2程序Struts2再体验Struts2中的ActionStruts2配置详解手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂为什么要使用框架技术?如何更快更好的写简历呢?思考:使用简历模板的好处不用考虑布局、排版等,

2、提高效率可专心在简历的内容上结构统一,便于人事阅读新手也可以做出专业的简历手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂什么是框架技术?“框架技术”帮我们更快更好的构建应用程序是一个应用程序的半成品提供可重用的公共结构按一定规则组织的一组组件优势不用考虑公共问题专心在程序的业务实现上结构统一,易于学习、交流、维护新手也可以写出结构良好的程序不用重复的去造轮子,站在巨人的肩上,享用前人的智慧。不用重复的去造轮子,站在巨人的肩上,享用前人的智慧。手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Java Web主流框架介绍1Str

3、uts框架1、MVC设计模式的实现设计模式的实现2、接收用户请求,调用业务、接收用户请求,调用业务逻辑代码,转发到正确页面逻辑代码,转发到正确页面3、控制器、控制器1、汲取了、汲取了Struts的优点的优点2、以、以WebWork为核心为核心3、拦截器、拦截器4、可变和可重用的标签、可变和可重用的标签手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Java Web主流框架介绍2Spring和Hibernate框架1、依赖注入容器、依赖注入容器 / AOP实现实现2、声明式事务、声明式事务3、简化、简化Java EE应用应用4、黏合剂,将大家组装到一起、黏合剂,

4、将大家组装到一起1、ORM,简化数据库操作,简化数据库操作2、DAO层层手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Java Web主流框架介绍3SSH就是就是Struts、Spring、Hibernate的框架合体简称的框架合体简称手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂从“模式”谈起Model1:将业务与JSP页面显示融合在一起,以JSP为中心的开发模式纯JSP文件形式开发优点:简单方便缺点:不易维护、扩展、调试使用JSP+JavaBean形式开发优点:页面相对整洁,JavaBean对业务功能进行了封装,提供了

5、重用性,便于扩展和调试缺点:JSP中仍然需要嵌入Java代码来实现业务逻辑手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Model2:即MVC设计模式的一个实现,引入了Servlet作为控制器,用来处理请求、调用业务、进行跳转。JSP+Servlet+JavaBean形式开发JSPViewServletControllerJavaBeanModel优点各司其职,互不干涉有利于分工开发有利于组件重用缺点:开发复杂,适合大型应用;不好控制,没有一个统一的规则。缺点:开发复杂,适合大型应用;不好控制,没有一个统一的规则。手把手教程版权所有:尚学堂科技Struts+

6、Hibernate+Spring尚学堂自定义MVC框架1实现原理:手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂自定义MVC框架2实现步骤:1.编写核心控制器(ControllerServlet)截获所有请求从请求的URL中分析功能分发到相应的处理类中根据处理结果进行跳转2.编写处理类1.编写处理类接口(Action)String execute(request,response)方法2.编写处理类的实现类xxxAction手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂自定义MVC框架3自定义MVC框架的不足分派代码有些繁

7、杂,每每增加业务就需要修改ControllerServlet。Action中的execute()方法中直接引用页面名称作为跳转路径,如果页面名称发生改变,则需要修改代码自定义MVC框架的进一步完善使用属性文件配置actionxxx=com.sxt.action.XxxAction从配置文件中根据请求URI得到对应的Action,取代控制器中的ifelseInputStream is=this.getClass().getResourceAsStream(/action.properties);Properties prop=new Properties();prop.load(is);acti

8、on=(Action)Class.forName(prop.getProperty(actionName).newInstance();手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2介绍Struts2是在WebWork基础上发展进来的WEB框架,利用了Webwork的先进的设计思想和理念,加上Struts长期聚积的名声和人气,合二为一,形成Struts2.在Struts2中使用IOC和AOP最先进的设计思想,使得控制器与容器最大程度的解耦.Struts2的两大特色:拦截器和OGNLStruts2=WebWork的技术的技术+Struts的市场的

9、市场手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2环境搭建jar包使用MyEclispe直接添加Struts2支持(8.5以上版本)手工方式添加Struts2的支持添加jar包Struts官方地址:http:/最少jar包修改web.xml添加struts2配置文件:struts.xml文件名说 明struts2-core-2.1.6.jarStruts 2框架的核心类库框架的核心类库xwork-2.1.2.jarXWork类库,类库,Struts 2的构建基础的构建基础ognl-2.6.11.jarStruts 2使用的一种表达式语言类库使用

10、的一种表达式语言类库freemarker-2.3.13.jarStruts 2的标签模板使用类库的标签模板使用类库commons-fileupload-1.2.1.jarStruts 2文件上传依赖包文件上传依赖包手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2环境搭建web.xmlStruts2通过通过StrutsPrepareAndExecuteFilter过滤器来启动过滤器来启动,在在web.xml文件中加入如下配置文件中加入如下配置: struts2 org.apache.struts2.dispatcher.ng.filter.Stru

11、tsPrepareAndExecuteFilter struts2 *.action手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2环境搭建struts.xmlStruts2的配置文件,的配置文件,Action必须配置在必须配置在struts.xml文件中文件中,该文件默认放该文件默认放在在classpath(src)下:)下:在这里配置Action 手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂我的第一个Struts2使用使用Struts 2实现:输入用户姓名,然后输出欢迎信息实现:输入用户姓名,然后输出欢迎

12、信息手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂我的第一个Struts2视图JSP开发视图层页面helloWorld.jsp$message请输入您的姓名:请输入您的姓名:手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂我的第一个Struts2控制器Action开发HelloWorldActionpublic class HelloWorldAction private String name = ; / 用户输入的姓名用户输入的姓名private String message = ; / 向用户显示的信息向用户显示的信息

13、/当当Struts 2处理用户请求时,在默认配置下调用的方法处理用户请求时,在默认配置下调用的方法public String execute() / 根据用户输入的姓名,进行根据用户输入的姓名,进行“Hello,XXXX!”的封装的封装this.setMessage(Hello,+this.getName()+!);return helloWorld; / 处理完毕,返回处理完毕,返回“helloWorld”/省略省略setter、getter方法方法手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂我的第一个Struts2struts.xml在在struts.

14、xml中配置中配置ActionhelloWorld.jsp最后部署运行最后部署运行手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2再体验用户登录手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2再体验开发步骤1加载Struts2 类库2配置web.xml3开发视图层页面1.登录页面login.jsp2.成功页面success.jsp3.失败页面fail.jsp4开发LoginAction5配置Action6部署、运行项目手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂

15、Struts2中的Action两个重要的控制器StrutsPrepareAndExecuteFilter:核心控制器:核心控制器,负责接收所负责接收所有请求,在有请求,在struts2中使用中使用Filter实现。实现。Action:负责处理单个特定请求,在:负责处理单个特定请求,在struts2中,中,Action组件组件不需要继承任何类和接口,它只需要满足以下两个条件不需要继承任何类和接口,它只需要满足以下两个条件:1.具有一个execute()方法,作为对请求信息进行处理,返回类型为String,表示跳转路径的逻辑名称。2.对包含的属性参数提供setter/getter方法,以便框架对属

16、性参数进行操作。手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2中的ActionAction接受请求参数11普通属性+setter/getter方法2也可以将所有请求参数封装到JavaBean中(如:User)public class UserAction private User user;public void setUser(User user) public User getUser() public String execute() throws ExceptionSystem.out.println(用户名: + user.getUn

17、ame() + 密码: + user.getUpass();return null; 页面表单方面处理与Struts1一致,即user.uname手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2中的ActionAction接受请求参数2在Struts 2 中通过Action属性的数据绑定降低了对request的使用需求,但是对于session、application还是有使用需求的与Servlet API解耦的访问方式接受请求参数: String=ActionContext.getContext().getParameters().get(una

18、me);获取Session: Map session=ActionContext.getContext().getSession();与Servlet API耦合的访问方式获取application:ServletActionContext.getServletContext()获取request:ServletActionContext.getRequest()使用request再得到session手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2中的Action处理多个请求的Action方法1:在Action中定义多个与execute签名相同的

19、方法(方法名不同),通过下面的方式进行访问:action名!方法名.action方法2:使用*达到通配效果要求:命名一定要规范/1.jsp手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2配置详解struts.xml /success.jsp/error.jsp 对于团队,一个项目有多人参与,应该为每个人准备一个struts配置文件,在struts.xml中使用:导入其他配置文件。手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2配置详解package元素包的作用:简化维护工作,提高重用性包可以“继承”

20、已定义的包,并可以添加自己包的配置name属性为必需的且唯一,用于指定包的名称extends属性指定要扩展的包namespace属性定义该包中action的命名空间 ,为可选属性。用于Action模块化管理在package中,不能有相同名称的action,但是不同的命名空间中允许有相同名称的actionstruts-default包在struts-default.xml文件中定义一般情况下,自己的包一定都要继承struts-default包手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2配置详解配置方式解决乱码问题constant元素元素配置常量

21、,可以改变Struts 2框架的一些行为name属性表示常量名称,value属性表示常量值手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2配置详解Result配置(常用类型)dispatcher类型默认结果类型,后台使用RequestDispatcher() 转发请求 redirect类型 后台使用的sendRedirect()将请求重定向至指定的URL redirectAction类型 主要用于重定向到Action chain类型主要用于请求转发到Actionmanageerror.jsplogin.jsp手把手教程版权所有:尚学堂科技Stru

22、ts+Hibernate+Spring尚学堂Struts2配置详解Result配置(动态类型)配置时不知道执行后的结果是哪一个,运行时才知道哪个结果作为视图显示给用户public class UserAction extends ActionSupport private String nextDispose;public String login() .if(user.isManager()nextDispose = manager;elsenextDispose = common;return SUCCESS;public String getNextDispose()return nex

23、tDispose;.$nextDispose/page/error.jsp.nextDispose要在要在Action中存中存在,并且提供其在,并且提供其getter方法方法 演示示例:使用动态结果演示示例:使用动态结果手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂Struts2配置详解Result配置(全局结果)全局结果可满足一个包中多个Action共享一个结果/page/error.jsp/page/login.jsp /page/manage.jsp /page/login.jsp /page/error.jsp不需要在包内的不需要在包内的Action中中指定指定error Result了了全局结果位于全局结果位于package元素内元素内手把手教程版权所有:尚学堂科技Struts+Hibernate+Spring尚学堂总结Struts2介绍与环境搭建自动手动我的第一个Struts2程序HelloWorldStruts2再体验登录Struts2中的ActionStruts2配置详解

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号