struts1面试题汇总

一、struts1工作原理
1.ActionServlet核心控制器会拦截所有*.do的请求
2.从struts-config.xml中找到用户请求的Action
3.通过struts-config.xml中的配置再去找这个Action对应的ActionForm,并实例化
4.把用户填写的数据自动填充到ActionForm中(调用ActionForm中的setXX()方法填充)
5.同时把ActionForm放入到指定的范围中(request,session)
6.然后把请求转发给Action
7.Action获取ActionForm中的值然后调用业务逻辑层实现功能
8.在通过ActionMapping查找Actionforward实现转发;
二、 Action和ActionForm是单例的吗?Action是线程安全的吗?
Struts1的Action是单例模式,非线程安全的,ActionForm是多实例

三、Action是不是线程安全的?如果不是 有什么方式可以保证Action的线程安全?如果是,说明原因
Struts1 Action是单例模式,因为仅有Action的一个实例来处理所有的请求。
保证Action的线程安全
1、实现 SingleThreadModel 接口 
2、同步对共享数据的操作
3、避免使用实例变量 
补充:交给spring管理的话可以通过设置scope为prototype来为每次请求创建一个action。 用ThreadLocal控制也可以。
四、Struts提供了几个标签库?都是什么标签库?
struts的标签库有:html标签、bean标签、tiles标签、logic标签、nested标签;
html标签:替代html标签
bean标签:访问javabean;
logic标签:逻辑控制标签;
tiles标签:创建tiles样式的页面;
nested标签:具有html、bean、logic标签的所有功能,允许嵌套使用;
五、Tiles框架是什么?
六、为什么使用struts

注意:  
JSP默认是以多线程方式执行的,
struts的action是非线程安全的。
不要在action中定义实例变量。

只是小弟最近的面试总结,如有不当,欢迎拍砖!

待续....
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值