SSH面试题

上传人:油条 文档编号:45964893 上传时间:2018-06-20 格式:DOCX 页数:40 大小:42.19KB
返回 下载 相关 举报
SSH面试题_第1页
第1页 / 共40页
SSH面试题_第2页
第2页 / 共40页
SSH面试题_第3页
第3页 / 共40页
SSH面试题_第4页
第4页 / 共40页
SSH面试题_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《SSH面试题》由会员分享,可在线阅读,更多相关《SSH面试题(40页珍藏版)》请在金锄头文库上搜索。

1、1JavaSSH(MVC)1.谈谈你 mvc 的理解MVC 是 ModelViewControler 的简称。即模型视图控制器。MVC 是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。MVC 中的模型、视图、控制器它们分别担负着不同的任务。视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。模型: 模型表示业务数据和业务处理。相当于 JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性控制器: 当用户单击 Web 页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。然后根据处理的结果调用相应的

2、视图来显示处理的结果。MVC 的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。Struts1.struts1.2 和 struts2.0 的区别?如何控制两种框架中的单例模式?struts1.2 和 struts2.0 的对比a、Action 类:struts1.2 要求 Action 类继承一个基类。struts2.0 Action 要求继2承 ActionSupport 基类b、线程模式struts1.2 Action 是单例模式的并且必须是线程安全的,因为仅有一个 Action 的实例来处

3、理所有的请求。单例策略限制了 Struts1.2 Action 能做的事情,并且开发时特别小心。Action 资源必须是线程安全的或同步的。struts2.0 Action 为每一个请求产生一个实例,因此没有线程安全问题。c、Servlet 依赖struts1.2 Action 依赖于 Servlet API,因为当一个 Action 被调用时 HttpServletRequest 和 HttpServletResponse 被传递给 execut方法。struts2.0 Action 不依赖于容器,允许 Action 脱离容器单独测试。如果需要,Struts2 Action 仍然可以访问初始

4、的 Request 和Response。但是,其他的元素减少或者消除了直接访问 HttpServletRequest 和HttpServletResponse 的必要性。d、可测性测试 struts1.2 Action 的一个主要问题是 execute 方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase提供了一套 struts1.2 的模拟对象来进行测试。3Struts2.0 Action 可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。2.项目中为什么使用 SSH1. 使用 Struts 是因为 struts 是

5、基于 MVC 模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的 taglib,如能灵活运用,则能大大提高开发效率。2. 使用 Hibernate:因为 hibernate 为 Java 应用提供了一个易用的、高效率的对象关系映射框架。hibernate 是个轻量级的持久性框架,功能丰富。3. 使用 Spring:因为 spring 基于 IoC(Inversion of Control,反向控制)和 AOP 构架多层 j2ee 系统的框架,但它不强迫你必须在每一层中必须使用 Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个

6、模块;采用 IoC 使得可以很容易的实现 bean 的装配,提供了简洁的 AOP 并据此实现事务管理(Transcation Managment),等等 3.struts 与 spring 是如何继承的不懂题目之意:是否是说的 struts 的 action 都继承自org.apache.struts.action.Action而 Spring 中的继承就不清楚了。44.struts 如何实现国际化以下以两国语言(中文,英文)为例:1. 在工程中加入 Struts 支持2. 编辑 ApplicationResource.properties 文件,在其中加入要使用国际化的信息, 例如: lab

7、le.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.propertie

8、s6. 在 jsp 中加入 struts 的 bean 标记库 显示信息: 可以在 struts-config.xml 文件中定义多个资源包,而每个资源包可使用 key 属性指定包的名称。5.struts2.0 的常用标签1. 往 action 里传值:2. 显示标签 property 用于输出指定值:3. 用于从页面往 action 中(user)的对象内传值:54. 判断 用于在页面中判断指定数据 . . 5. 迭代用于将 List、Map、ArrayList 等集合进行循环遍历6. URL 地址标签,用于生成一个 URL 地址,可以通过 URL 标签指定的子元素向 URL 地址发送请求参

9、数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 中)6path:请求 Action 的名字; attribute:form 的名字,与 form-

10、bean中的 name 对应; input:输入页的路径;name:如果配置了 attribute,name 不起作用,与 attribute 一样; parameter:使用分发 Action 时,指定调用分发 Action 中的方法名;scope:Action 的范围; type:Action 的类型:包名+类名;tites 配置:1. 新建一个 tiles-defs.xml 文件,并在其中做如下配置:72. 在 web.xml 和 struts-config.xml 和 web.xml 中做相应配置:在 struts-config.xml 中配置如下:*在 web.xml 中配置如下:*

11、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:gre

12、aterEqual;logic:present, logic:notPresent;logic:match, logic:notMatch; 比较两字符串是否相等,可以比较字符串的开始的、结尾的或其中的某个部分。location 属性:指定从某个位置开始进行比较。2. 循环类型logic:iterate3. 转发/重定向类型logic:forward 和 logic:redirectlogic:forward 标签和 jsp:forward 标签相似,但它可以使用global forward 中的一个 ActionForward例如:9与上面相关的 global forward 中的代码:lo

13、gic:redirect 标签和上面的标签类似,但它默认调用的方法是response.sendRedirect(),取代了上面的 requestDispatcher.forward()。最大的不同是它支持所有 html:link 标签的属性,所以你能够指定 request 参数:在 MVC 框架下,不推荐使用这两个标签,你应该是从 controller 中选择下一个 view,而不是从 view 中选择.在 Jsp 页面中不要过多的使用 logic 标签。8.action 是单实例还是多实例,为什么?action 是单实例的。当多个用户访问一个请求的时候,服务器内存中只有一个与之对应的 act

14、ion 类对象。因为当服务器第一次加载 struts 的配置文件的时候,创建了一个Action 后,每发送一个请求,服务器都会先去检索相应的范围内(request,session)是否存在这样一个 action 实例,如果存在,则使用这个实例,如果不存在,则创建一个 action 实例。109.dispatchAction 是用什么技术实现的?DispatchAction 是 Aciton 的一个子类,主要解决了一个请求处理多个功能的问题普通的 Action 你只能写 execute 方法来处理业务,而想用这一个Action 处理多个任务,你必须要请求参数进行解析,用 if 语句块来处理举一个

15、小例子:有如下一个 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 来处理的,只是多判断一下而已.如果你用 D

16、ispatchAction,就简单多了,所以 dispatchAction 还是用的 Action 的这么一个技术。10.struts2.0 的 mvc 模式?与 struts1.0 的区别?struts2 的 mvc 模式:当用户在页面提交用户请求时,该请求需要提11交给 struts2 的控制器处理。struts2 的控制器根据处理结果,决定将哪个页面呈现给客户端。与 struts1 最大的不同是:struts2 的控制器。struts2 的控制器不再像 struts1 的控制器,需要继承一个 Action 父类,甚至可以无需实现任何接口,struts2 的 Action 就是一个普通的 POJO。实际上,Struts2 的 Action 就是一个包含 execute 方法的普通 Java 类该类里包含的多个属性用于封装用户的请求参数。11.STRUTS 的配置文件

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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