时间:2023-03-15 05:22:15 下载该word文档
Struts1、谈谈你对mvc模式的理解?
V:视图(View)代表用户交互界面,负责接收用户的输入并将输入的数据和请求传递给控制,再将处理的数据显示给用户。
M:模型(Model)业务流程的处理,业务模型的设计可以说是MVC最主要的核心(通过JavaBean,EJB组件实现),
C:控制(Controller可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
MVC好处:通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
2、struts2流程?
简要流程如下:
(1)客户端浏览器向Servlet容器(Tomcat)发出HTTP请求
(2)根据web.xml配置,该请求被StrutsPrepareAndExecuteFilter(struts2核心控制器接收
(3)根据struts.xml配置,决定需要调用的Action类和方法,StrutsPrepareAndExecuteFile会把请求交给ActionProxy(4)ActionProxy在调用Action的过程前后,根据struts.xml对其相关的拦截器进行
调用
(5)Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到响应页面
(6)返回HTTP响应到客户端浏览器
3、Struts2如何调用ServletAPI?
通过ActionContext和ServletActionContext这两个类的操作就可以访问ServletAPI
4、Struts2如何实现文件的上传?
(1)在页面设置表单的enctype和method属性:enctype=”multipart/form-data”设置以二进制流的方式处理表单数据,必须设置method=”post”
(2)在Action里定义三个变量:
1.Filexxx;封装用户上传的文件内容
2.StringxxxFileName;封装用户上传的文件的文件名
3.StringxxxContentType;封装用户上传的文件的文件类型
(3)在目的地新建一个新文件FilenewFile=newFile(path);然后通过FileUtils.copy(xxx,newFile将上传的文件复制到新文件里即完成文件的上传。
5、Struts2如何限制上传文件的类型和大小?
通过配置struts2提供的拦截器fileUpload的两个参数allowedExtensions、allowedTypes、maximumSize分别来限制文件上传的后缀名、文件类型和大小。
6、struts1与struts2的区别?
(1)在Action实现类上的对比
Struts1要求Action类继承一个抽象基类(Action,DispatchActionStruts2Action类可以实现一个Action接口,可以继承ActionSupport,甚至只要是一个包含execute方法的POJO类都可以用作Struts2的Action(2)线程模式方面的对比
Struts1的Action是单例模式,所以存在线程安全性问题。
Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。
(3)Servlet依赖方面的对比
Struts1Action依赖于ServletAPI,Struts1Action的execute方法中有HttpServletRequest和HttpServletResponse方法