虽然现在struts2用的不多,但是面试的时候可能会问,故在此简单总结一下:
springmvc | struts2 | ||
1 | 配置 | 无 | 比较多 |
2 | 基于什么开发 | 方法 | 类 |
3 | 入口 | servlet | filter |
4 | 如何管理controller | 默认单例,支持多例 | 只能多例 |
5 | 参数传递,存储 | 值栈(ognl) | 形参 |
6 | 拦截机制 | interceptor | AOP |
7 | AJAX的使用 | @ResponseBody | 需额外集成插件或自己写代码 |
8 | Bean的验证 | JSR303 | 很繁琐 |
9 | 方法之间的独立性 | 独立 | 虽然也是独立的,但是 Action变量是共享的,这样会给阅读代码带来麻烦。 |
问:springmvc是单例的,高并发下如何实现高性能的?
答:首先单例的作用是避免对象频繁的创建和销毁,由此提高性能。
而如何在高并发下保证线程安全呢,答案是使用ThreadLocal这个类,此类的key就是Thread实例,这样虽然仍然是一个实例在操作,但是不同线程下的数据是互相隔离的,而且并发越高优势反而越明显。
暂时总结这么多,有什么错误请大家指正。