1. Servlet与Filter区别:
Servlet:
void init(ServletConfig cfg);//初始化,读取Servlet的配置参数
void service(ServletRequest request,ServletResponse response);服务方法,用户的每次请求都会执行
void destory();//销毁方法
单例的
--------------------------
Filter:
void init(FilterConfig cfg);//初始化,读取Filter的配置参数
void doFilter(ServletRequest request,ServletResponse response,FilterChain chain);过滤方法,用户每次访问被过滤的资源,都会执行
void destory();//销毁方法
单例的
总结:过滤器比Servlet强大,它能够决定是否让目标执行。
---------------------------
实际开发:Servlet在MVC开发模型中作为控制器存在,那么Filter也可以作为控制器。
2. struts2是基于MVC开发的框架,属于表现层框架
struts2有struts+WebWork发展而来,与struts1有很大区别
3. struts2目录结构:
- apps 示例应用
- docs 相关文档,包括快速入门,API等
- lib struts框架和核心类库,及struts2第三方插件类库
- src 全部源代码
开发没必要将lib下jar全加入
4. 主要jar包:
a、default.properties:struts2-core**.jar org.apache.struts包中(程序员只能看)
b、struts-default.xml:struts2-core**.jar中(程序员只能看)
c、struts-plugin.xml:在插件的jar包中(程序员只能看)
以下文件可自定义修改
d、struts.xml:在应用的构建路径顶端。自己定义的Struts配置文件(推荐)
e、struts.properties:在应用的构建路径顶端。程序员可以编写(不推荐)
f、web.xml:配置过滤器时,指定参数。程序员可以编写(不推荐)
特别注意:顺序是固定的。后面的配置会覆盖前面的同名配置信息。
7. 代码验证
此处的默认配置在 default.properties 中,默认为action或无
8. 在Struts.xml中设置常用常量(覆盖default.properties文件中默认设置)使用constant参数
//处理struts2处理请求后缀,默认为action, 如需配置多个,逗号隔开
<constant name="struts.action.extension" value="action"/>
//浏览器是否静态缓存内容(true),开发最好关闭
<constant name="struts.serve.static.browserCache" value="false"/>
//struts配置文件修改后,系统是否自动重新加载该文件(false),开发最好true
<constant name="struts.configuration.xml.reload" value="true"/>
//开发模式,可打印出更详细的错误信息
<constant name="struts.devMode" value="true"/>
//是否支持动态方法调用(false)DMI
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
9. 获取当前工作路径: