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目录下会有点臃肿的感觉,此时可以创建文件夹,然后自己定义过滤器(拦截器)
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目录下会有点臃肿的感觉,此时可以创建文件夹,然后自己定义过滤器(拦截器)
相关文章推荐
- java字符串提取汉字
- struts2升级
- Java Logger
- Eclipse编辑jsp、js文件时,经常出现卡死现象解决汇总
- Struts2漏洞为互联网带来严重安全风险
- struts2 struts.xml常用常量配置
- eclipse中jdk的配置
- eclipse无法识别手机
- JAVA中重写equals()方法为什么要重写hashcode()方法
- struts2 result type= redirect redirectAction chain dispatcher等类型
- 2015我想和Java聊聊之NIO读写文件
- Java 设计模式-六大原则
- Struts1和Struts2对照
- java报“非法字符: \65279 ”错误的解决方法
- webService入门
- Struts2.3.24项目配置所需最少依赖jar包及配置
- 矿Spring入门Demo
- java socket 属性设置
- Java知识结构
- java Socket通讯(二)