zoukankan      html  css  js  c++  java
  • Struts2 学习(一)

    一、Struts 介绍

    1、Struts2的概述

    1、早期开发模型Servlet+JSP+JavaBean(Model2)显得力不从心:

      流程凌乱、数据传递无序、缺乏辅助功能。

    2、MVC模式的轻量级Web应用框架:Apache Struts1 很快风靡全球。

      代码结构划分合理,实用工具框架(如验证框架、国际化框架)等。

    3、时间推移,Struts1的缺点:

      线程不安全、灵活性低、和ServletAPI耦合、页面传值麻烦等。

    4、异军突起,SpringMVC 和 OpenSymphony 的 WebWork 等。

    5、Apache Struts + OpenSymphony WebWork2 = Struts2

      Struts2:基于MVC的轻量级的Web应用框架,

    6、来源于Webwork2与Struts1.x完全不兼容,Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型。

    由传统Struts1和WebWork两个经典框架发展而来:

      Struts2框架= Struts2 + XWork

    7、Strust2 核心功能:

    • 允许POJO(Plain Old Java Objects)对象 作为Action。
    • Action的 execute 方法不再与 Servlet API 耦合,更易测试
    • 支持更多视图技术(JSP、FreeMarker、Velocity)
    • 基于 Spring AOP 思想的拦截器机制,更易扩展
    • 更强大、更易用输入校验功能
    • 整合Ajax支持

    2、Struts2框架的核心两层(Struts+XWork)

    3、Struts 目录结构

    1、apps:该文件夹包含了基于 struts2 的示例应用,这些示例应用对于学习者是非常有用的。

    2、docs:该文件夹下包含了 struts2 相关文档,包括 struts2 快速入门、struts2 的文档以及API文档等。

    3、lib:该文件夹下包含了 Struts2 框架和核心类库,以及 struts2 第三方插件类库。

    4、src: 该文件夹下包含了 Struts2 框架的全部源代码。

    二、Struts 简单入门

    1、准备Struts2依赖的jar文件

    注意:别拷贝Struts2中lib下所有的jar,必须的jar如下。

      Struts2根/apps下,解压struts2-blank.war,拷贝其WEB-INF/lib中的所有的 jar 到自己的项目中。

    2、在 web.xml 中配置前端控制器

      StrutsPrepareAndExecuteFilter-(参阅struts2-blank项目的web.xml文件)

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     3          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
     5          version="3.1">
     6 
     7     <!--配置核心拦截器-->
     8     <filter>
     9         <filter-name>struts2</filter-name>
    10         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    11     </filter>
    12     <filter-mapping>
    13         <filter-name>struts2</filter-name>
    14         <!--拦截所有url-->
    15         <url-pattern>/*</url-pattern>
    16     </filter-mapping>
    17 </web-app>

    3、定义一个 action

      HelloAction,提供一个execute方法(公共无参数)。

     1 package com.struts2.action;
     2 
     3 /**
     4  * @author zt1994 2018/3/8 11:19
     5  */
     6 public class HelloAction {
     7     private String name;
     8 
     9     public String execute() throws Exception{
    10         return "success";
    11     }
    12 
    13     public String getName() {
    14         return name;
    15     }
    16 
    17     public void setName(String name) {
    18         this.name = name;
    19     }
    20 }

    4、HelloWorld.jsp 视图文件

     1 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
     2 <html>
     3 <head>
     4     <title>HelloWorld</title>
     5 </head>
     6 <body>
     7 <h1>恭喜成功配置好基本的struts2环境</h1>
     8 <h2>Hello World</h2>
     9 </body>
    10 </html>

    5、Struts2的配置文件 struts.xml

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE struts PUBLIC
     3         "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4         "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 <struts>
     6     <!-- 指定Struts2处于开发阶段,可以进行调试 -->
     7     <constant name="struts.devMode" value="true"/>
     8     <package name="default" extends="struts-default" namespace="/oa">
     9 
    10         <action name="hello" class="com.struts2.action.HelloAction" method="execute">
    11             <!--结果集,即action中成功返回的视图-->
    12             <result name="success">/HelloWorld.jsp</result>
    13         </action>
    14 
    15     </package>
    16 </struts>

    6、部署项目,访问Action

    访问格式:http://http://localhost:8080/oa/hello.action

    7、Struts2 简单执行流程

  • 相关阅读:
    图片上传-下载-删除等图片管理的若干经验总结3-单一业务场景的完整解决方案
    图片上传-下载-删除等图片管理的若干经验总结2
    HDU 1195 Open the Lock
    HDU 1690 Bus System
    HDU 2647 Reward
    HDU 2680 Choose the best route
    HDU 1596 find the safest road
    POJ 1904 King's Quest
    CDOJ 889 Battle for Silver
    CDOJ 888 Absurdistan Roads
  • 原文地址:https://www.cnblogs.com/zt19994/p/8528325.html
Copyright © 2011-2022 走看看