感谢itcast发布的免费视频
1. mvc模式的简要回顾
用户请求发送到web容器,web容器会调用一个servlet来处理,servlet处理后返回给web容器
以上为过时的信息,造成html和java代码混淆
2.struts分发请求的过程与相关配置
按照mvc设计出来的web框架
在struts配置文件里面为什么不配置.do?
因为可能后缀会变化,有可能以后变成.htm
可以用逗号分割出多个配置文件
action中配置项可以使用通配符
3. struts封装请求参数的过程与相关配置
ActionServlet将参数封装成formbean
Formbean中属性与html的form中的元素的name对应
Formbean(validate方法)验证失败,返回input视图
Validate属性默认true,可以设置为false不进行validate
4. 分析struts返回页面的方式与请求处理流程
struts时序图
ActionServlet让RequestProcessor处理
5. 准备和搭建struts的开发环境
6. struts注册用例的需求分析与架构设计
7.完成和连结注册用例中的各个部件
<action path="/RegUserUI" type="cn.itcast.strutsdemo.user.web.struts.actions.RegUserUI">
<forward name="success" path="/reguser.jsp"></forward>
</action>
8. ActionMapping类的作用与原理分析
xml中的元素都变成了一个类
配置文件中对应的类:FormBeanConfig,ActionConfig
9. URL路径与EL表达式的应用问题
<a href="${pageContext.request.contextPath }/RegUser.do">register</a>
10. html_link标签的应用及相关面试攻略
<html:link action="/RegUserUI">good</html:link>
这里有好处的是当后缀名改变时不用改代码
为什么用jstl,因为jstl是标准,比较通用,但是我也用struts标签
11. struts相关的部分面试题分析
说说对struts的理解
struts是一个遵循MVC模式的WEB层框架,说白了,它就是一个大大的servlet这个servlet的名字叫ActionServlet.在web.xml文件中把某一组请求映射给这个servlet.通常使用*.do形式,也就是影射给了struts框架。当这个ActionServlet接受请求以后,它将吧这个请求交给一个Action处理,不同的请求交给不同的Action处理,一个请求路径到底对应哪个Action,这是在struts-config.xml配置的。Struts-config.xml的名称和路径可以在ActionServlet的参数忠进行配置,并且可以配置城多个文件,以逗号分割。ActionServlet把请求交给Action之前,会把请求参数封装成一个formbean,当formbean校验有问题时,就返回到错误提试的页面,当没有问题时,才传递给Action去处理。Action处理后返回的结果视图用一个ActionForward对象表示,ActionForward对象通过struts-config.xml配置文件中的配置关联到某个jsp页面,因为程序中使用的是在struts-config.xml配置文件为jsp页面设置的逻辑名,这样可以实现Action程序代码与返回的jsp页面名称的解耦,此外,struts提供了国际化支持和一些非常方便的标签,使得一些页面开发任务得到了简化。
Action元素中有那几个属性必须设置?
Type path
12. html_link标签的URL重写功能分析
<html:link>好处
不用关心web应用程序的路径和ActionServlet的影射路径
可以自动附加jsessionid参数进行url重写
可以对参数信息进行url编码
13. 为html_link标签生成的URL附加参数
提前将参数放在web编两中
request.setAttribute(“name”, “张小项”);
<html:link action=”/RegUserUI” paramId=”username” paramName=”name” >link</html:link>
从对象取属性
<html:link action=”/RegUserUI” paramId=”nwo” paramName=”now” paramProperty=”time” >link</html:link>
多个参数的传递
在web变量中存一个map(person)
<html:link action=”/RegUserUI” name=”person” >link</html:link>
14.html_optionsCollection标签的设计思想
<option value=”1”>deve</option>
<option value=”2”>sale</option>
直接集合
request.setAttribute(“depts”, depts);
<html:optionsCollection name=”depts” value=”id” label=”name”>
对象里面的集合
<html:optionsCollection name=”corp” property=”department” value=”id” label=”name”>
15.logic_forward标签与全局forward的应用
<logic:forward name=”” /> //name为<forward>标记的name需要全局forward
16. _logic_redirect标签与两种跳转方式的比较
forward站内,href站外
17. _struts中的一些基本注意事项
Action是单实例和线程不安全的,在Action最好不要有可读写的成员变量。
Struts-config.xml文件中得<action>元素的path属性中没有.do,原因是影射到struts的路径可以不是.do
Struts-config.xml文件中得<action>元素的path属性必须以/开头,forward路径也是
18. 用html_rewrite标签生成指向action的URL
<html:rewrite action=”/RegUserUI”/>//生成超连接地址
<form action=” <html:rewrite action=”/RegUserUI”/>” method=”post”>
19. 在Action中使用response输对象出数据
out.print在action中不要返回forward,返回null;