- 1、本文档共117页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Struts2 课程笔记
一:struts2第一天
1:模拟struts2的底层转发原理servlet
第一步:创建web工程
第二步:定义test.jsp,我们的目的实现3个URL链接的转发
第三步:创建一个Servlet测试地址的转发,在web.xml中定义
第四步:创建一个Servlet的类,处理转发到指定页面的操作
缺点:这样做的缺点就是是,每个URL都会在web容器中配置,能否实现在web容器中只配置一次,就可以实现以上3个URL都可以跳转到指定的页面呢?
结论:可以使用过滤器实现
第一步:在web容器中定义过滤器
第二步:创建一个接口Action,用来实现对多个Action的多态
同时创建3个Action的类,实现这个Action接口,可以操作同一个execute的方法
(1)UserAction
(2)HelloAction类
(3)CustomerAction类
这里大家注意:他们的类是UserAction、HelloAction、CustomerAction,对应的返回值分别是:success、error、add。
第三步:创建一个过滤器实现,url链接和每个类之间的跳转,以及类的返回值跳转到指定页面的配置:
public class TestFilter implements Filter {
//使页面访问的路径找到对应的Action类
private MapString, String actionMap = new HashMapString, String();
//使用Action类中返回值对应访问的页面
private MapString, String returnMap = new HashMapString, String();
/**web容器启动时初始化*/
public void init(FilterConfig config) throws ServletException {
actionMap.put(/userAction.action, cn.itcast.action.UserAction);
actionMap.put(/helloAction.action, cn.itcast.action.HelloAction);
actionMap.put(/customerAction.action, cn.itcast.action.CustomerAction);
returnMap.put(success, /success.jsp);
returnMap.put(error, /error.jsp);
returnMap.put(add, /add.jsp);
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
//获取页面访问连接,
String path = request.getServletPath();//--/userAction.action
if(path!=null path.equals(/test.jsp)){
chain.doFilter(request, response);
return;
}
try {
//获取访问的Action类的路径
String actionClass = actionMap.get(path);
//使用Action类的路径,并用java反射机制,获取Action类
Action action = (Action) Class.forName(actionClass).newInstance();
//执行Action类的方法
String returnValue = action.execute();
//利用Action类的返回值,获取所对应的页面
String page = returnMap.get(returnValue);
//转发到对应的页面
request.getRequestDispatcher(page).forward(request, response);
} catch (Exc
您可能关注的文档
最近下载
- FLEX SYSTEM EN2092 1GB ETHERNET调试文档模板.pdf VIP
- 2024年9月中国汽车产销报告.pdf VIP
- 2024年11月广东深圳市福田区选用机关事业单位辅助人员和社区专职工作者143人笔试备考题库及答案解析.docx VIP
- 流体力学 课件 第6章 气体射流.pptx
- 武汉理工大学材料科学基础课件(全套).pdf
- 风貌改造工程施工组织设计.doc
- 药品生物检定技术 全套教案.doc
- 浅谈双碳战略下的自来水厂碳核算碳减排经验分享_供水技术讲座资料课件.pptx
- 2024广州铁路局机考.pdf
- 11《动物的眼睛》教学设计-2023-2024学年科学二年级下册青岛版.docx VIP
文档评论(0)