您的位置:首页 > 编程语言 > Java开发

struts2框架(受虐不停,更新不止)

2015-09-23 19:05 197 查看
每次面试被问到项目时总是心慌慌的,毕竟没深入学过struts2框架,也没做过正式的web页面,所以积累理论的同时,实践编码是必要的

Q:说说struts2的特点

A:是 struts 1和WebWork的技术基础上进行了合并的全新框架,以WebWork为核心,采用拦截器的机制来处理用户的请求。

当Web容器收到请求它将请求传递给一个标准的的过滤链包括过滤器,然后经过Otherfilters ,接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器
一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面,之后拦截器会执行(顺序和Action执行之前相反)最后响应,返回在web.xml中配置的那些过滤器和(核心控制器)



Struts1要求必须统一扩展自Action类,而Struts2中可以是一个POJO(Plain Ordinary Java Object,简单的Java对象,实际就是普通JavaBeans)。

Struts2中的Action不再依赖于Servlet
API,有利于测试。

Q:说说MVC和它的运作流程

A:是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式



Q:Controler的作用

A:是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

Q:Socket通信需要用到http协议吗?

A:是的,云服务器作为服务器端,保持监听状态,客户端去连接服务器端,连接后再发送信息

socket的原理以及与http协议之间的关系,可参考下文:http://blog.csdn.net/furongkang/article/details/7065383

Q:可以通过url直接跳过用户登入这一步吗?

A:不可以,因为所有页面都是在WEB-INF目录下,WEB-INF目录下的文件,不能通过在浏览器地址栏中输入URL直接访问。必须通过服务器端的跳转。在Struts2中,即通过Action的result来指向WEB-INF下的资源。当然项目足够大的时候,jsp文件都放在WEB-INF目录下会有点臃肿的感觉,此时可以创建文件夹,然后自己定义过滤器(拦截器)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: