struts2课程笔记.doc

  1. 1、本文档共117页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

bbnm58850 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档