Struts2 入门到精通

Posted julysun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts2 入门到精通 相关的知识,希望对你有一定的参考价值。

一、为什么要使用 struts2 以及 servlet 的优缺点

  Servlet 缺点

  1.写一个 servlet 需要在 web.xml 文件里面配置 8 行,如果 servlet 过多,则会导致 web.xml 文件里面的内容很多。

  2.当项目分工合作,多人编辑一个 web.xml 文件的时候会出现版本冲突。

  3.在一个 Servlet 中方法的入口只有一个,诸多不便。

  4.Servlet 中的方法都有两个参数 request、response,这两个参数具有严重的容器依赖性,所以在 Servlet 中写的代码是不能单独测试的。

  5.如果表单中元素很多,在 Servlet 里面获取表单数据的时候会出现很多 request.getParameter 代码。

  6.在一个 Servlet 的属性中声明一个数据,会存在线程安全隐患。(struts2 中的 action 是多实例的,每请求一次将会创建一个对象,是不存在线程安全的。

 

  Servlet 优点

  1.因为是最底层的 mvc,所以效率比较高。

  

 

二、根据所学基础知识模拟设计 struts2

  1.写一个 ActionListener 监听器 

    public class ActionListener implements ServletContextListener {

  @Override
  public void contextInitialized(ServletContextEvent servletContextEvent) {
   Map<String, String> map = new HashMap<String, String>();
   map.put("Action", "cn.july.Action");
   servletContextEvent.getServletContext().setAttribute("actions", map);
   }

   @Override
   public void contextDestroyed(ServletContextEvent servletContextEvent) {
   servletContextEvent.getServletContext().setAttribute("actions", null);
   }
   }

  2.写一个 ActionServlet Servlet
    @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  String uri = req.getRequestURI();
  String actionName = uri.substring(1);
   System.out.println("actionName:" + actionName);
  Map<String, String> actions = (Map<String, String>)this.getServletContext().getAttribute("actions");
  System.out.println("actions:" + actions);
  String className = actions.get(actionName);
  System.out.println("className:" + className);
  try {
  Class clazz = Class.forName(className);
  Method method = clazz.getMethod("excute");
  String result = (String) method.invoke(clazz.newInstance());
  System.out.println("result:" + result);
  resp.sendRedirect("/"+ result +".jsp");
  } catch (Exception e){
  e.printStackTrace();
  }
  }
  
3.写一个 Action 类
    public String excute(){
  return "login";
  }

  4.浏览器访问 http://localhost:8080/Action 即到达 login.jsp 页面







































以上是关于Struts2 入门到精通 的主要内容,如果未能解决你的问题,请参考以下文章

Atom编辑器入门到精通 Atom使用进阶

Atom编辑器入门到精通 Atom使用进阶

Atom编辑器入门到精通 Atom使用进阶

走进SpringMVC世界,SpringMVC从入门到精通

shader从入门到精通——Shader的组织形式

词云可视化:四行代码从入门到精通