资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Java-SSH(MVC)1. 谈谈你 mvc 的理解MVC 是 ModelViewControler 的简称。即模型视图控制器。MVC 是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC 中的模型、视图、控制器它们分别担负着不同的任务。视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。模型: 模型表示业务数据和业务处理。相当于 JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性控制器: 当用户单击 Web 页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的视图来显示处理的结果。MVC 的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。Struts1. struts1.2 和 struts2.0 的区别?如何控制两种框架中的单例模式?struts1.2 和 struts2.0 的对比a、Action 类:struts1.2 要求 Action 类继承一个基类。struts2.0 Action 要求继承 ActionSupport 基类b、线程模式struts1.2 Action 是单例模式的并且必须是线程安全的 ,因为仅有一个 Action 的实例来处理所有的请求。单例策略限制了 Struts1.2 Action 能做的事情,并且开发时特别小心。Action 资源必须是线程安全的或同步的。struts2.0 Action 为每一个请求产生一个实例 ,因此没有线程安全问题。c、Servlet 依赖struts1.2 Action 依赖于 Servlet API,因为当一个 Action 被调用时 HttpServletRequest 和HttpServletResponse 被传递给 execut 方法。struts2.0 Action 不依赖于容器,允许 Action 脱离容器单独测试。如果需要,Struts2 Action 仍然可以访问初始的 Request 和 Response。但是,其他的元素减少或者消除了直接访问 HttpServletRequest 和 HttpServletResponse 的必要性。d、可测性测试 struts1.2 Action 的一个主要问题是 execute 方法暴露了 Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase提供了一套 struts1.2 的模拟对象来进行测试。Struts2.0 Action 可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。2. 项目中为什么使用 SSH1. 使用 Struts 是因为 struts 是基于 MVC 模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts 有着丰富的 taglib,如能灵活运用,则能大大提高开发效率。2. 使用 Hibernate:因为 hibernate 为 Java 应用提供了一个易用的、高效率的对象关系映射框架。hibernate 是个轻量级的持久性框架,功能丰富。 3. 使用 Spring:因为 spring 基于 IoC(Inversion of Control,反向控制)和 AOP 构架多层 j2ee 系统的框架,但它不强迫你必须在每一层中必须使用 Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;采用 IoC 使得可以很容易的实现 bean 的装配,提供了简洁的 AOP 并据此实现事务管理(Transcation Managment),等等 3. struts 与 spring 是如何继承的不懂题目之意:是否是说的 struts 的 action 都继承自 org.apache.struts.action.Action而 Spring 中的继承就不清楚了。4. struts 如何实现国际化以下以两国语言( 中文,英文) 为例:1. 在工程中加入 Struts 支持2. 编辑 ApplicationResource.properties 文件,在其中加入要使用国际化的信息 , 例如: lable.welcome.china=Welcome!3. 创建英文资源文件 ApplicationResource_en.properites4. 创建临时中文资源文件 ApplicationResource_temp.properites 例如:lable.welcom.china=中国欢迎您!5. 对临时中文资源文件进行编码转换。可以使用 myeclipse 的插件,也可以在 dos 下执行:native2ascii -encoding gb2312 ApplicationResource_temp.properties ApplicationResource_zh_CN.properties6. 在 jsp 中加入 struts 的 bean 标记库 显示信息: 可以在 struts-config.xml 文件中定义多个资源包,而每个资源包可使用 key 属性指定包的名称。5. struts2.0 的常用标签1. 往 action 里传值: 2. 显示标签 property 用于输出指定值: 3. 用于从页面往 action 中(user)的对象内传值: 4. 判断 用于在页面中判断指定数据 . . 5. 迭代用于将 List、Map、ArrayList 等集合进行循环遍历 6. URL 地址标签,用于生成一个 URL 地址,可以通过 URL 标签指定的 子元素向 URL地址发送请求参数 7. 超链接 一般和标签一起使用,用于带多个参数。 超链接8. set 标签,用于将某个值放入指定的范围内。例如 application,session 等。 6. struts 中怎么配置 form-bean、action 、tiles此处配置的是 struts1.2 的form-bean 配置:(在配置文件 struts-config.xml 中):name: 指定 form 的名字; type 指定 form 的类型:包名+ 类名;action 配置: (在配置文件 struts-config.xml 中)path:请求 Action 的名字; attribute:form 的名字, 与 form-bean 中的 name 对应; input:输入页的路径; name:如果配置了 attribute,name 不起作用,与 attribute 一样; parameter:使用分发 Action 时,指定调用分发 Action 中的方法名;scope:Action 的范围; type:Action 的类型:包名+类名;tites 配置:1. 新建一个 tiles-defs.xml 文件,并在其中做如下配置:2. 在 web.xml 和 struts-config.xml 和 web.xml 中做相应配置:在 struts-config.xml 中配置如下: *在 web.xml 中配置如下:*definitions-config /WEB-INF/tiles-defs.xml*3. 调用 Tiles 组件Tiles 组件是通过 Struts Action 来调用的,在 struts-config.xml 中做如下 action 配置:*7. logic 标签有哪几个?此标签库可以分为三种类型:条件、循环、转发/重定向。1. 条件类型 (没标注的都比较简单)logic:empty, logic:notEmpty;logic:equal, logic:notEqual, logic:lessThan, logic:greaterThan,logic:lessEqual, logic:greaterEqual;logic:present, logic:notPresent;logic:match, logic:notMatch; 比较两字符串是否相等,可以比较字符串的开始的、结尾的或其中的某个部分。location 属性:指定从某个位置开始进行比较。2. 循环类型logic:iterate3. 转发/ 重定向类型logic:forward 和 logic:redirect logic:forward 标签和 jsp:forward 标签相似,但它可以使用 global forward 中的一个 ActionForward例如:-与上面相关的 global forward 中的代码:logic:redirect 标签和上面的标签类似,但它默认调用的方法是 response.sendRedirect(),取代了上面的 requestDispatcher.forward()。最大的不同是它支持所有 html:link 标签的属性,所以你能够指定 request 参数:在 MVC 框架下,不推荐使用这两个标签,你应该是从 controller 中选择下一个 view,而不是从view 中选择.在 Jsp 页面中不要过多的使用 logic 标签。8. action 是单实例还是多实例,为什么?action 是单实例的。当多个用户访问一个请求的时候,服务器内存中只有一个与之对应的 action 类对象。因为当服务器第一次加载 struts 的配置文件的时候,创建了一个 Action 后,每发送一个请求,服务器都会先去检索相应的范围内(request,session)是否存在这样一个 action 实例,如果存在 ,则使用这个实例,如果不存在,则创建一个 action 实例。9. dispatchAction 是用什么技术实现的?DispatchAction是 Aciton 的一个子类,主要解决了一个请求处理多个功能的问题 普通的 Action 你只能写 execute 方法来处理业务,而想用这一个 Action 处理多个任务,你必须要请求参数进行解析,用 if 语句块来处理 举一个小例子: 有如下一个 url: http:/localhost:8080/myApp/addUserAction.do 如果你处理这个 url 的是一个普通的 Action,那么就只能在 execute 里面执行插入的相关操作,如果换成一下 url: http:/localhost:8080/myApp/UserAction.do?method=add 你就应该根据 method 对象的值来执行相应的操作 ,如再有一个路径http:/localhost:8080/myApp/UserAction.do?method=delete 这个还可以使用那个 Action 来处理的,只是多判断一下而已. 如果你用 DispatchAction,就简单多了,所以 dispatchAction 还是用的 Action 的这么一个技术。10. struts2.0 的 mvc 模式?与 struts1.0 的区别?struts2 的 mvc 模式:当用户在页面提交用户请求时, 该请求需要提交给 struts2 的控制器处理。struts2 的控制器根据处理结果,决定将哪个页面呈现给客户端。与 struts1 最大的不同是:struts2 的控制器。struts2 的控制器不再
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号