Struts2学习——0100HelloStruts

Struts2背景

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts 2可以理解为WebWork的更新产品。虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

特点

特点一般都会包括两个部分,优点和缺点。这里我就不赘述了,首先是因为我还没怎么学Struts2,你要让我说吧,我肯定不行。要大段大段抄吧,我已经抄了一段背景了。这个抄了我也不懂到底抄的对不对,也就作罢。

HelloStruts步骤

1. 建一个web project(以MyEclipse 2015 stable2.0为例)

File–>New–>Web Project

这里写图片描述
接着就自己下一步建立吧。

2. 导入Struts2里面需要的jar包

  • commons-fileupload-1.2.1.jar
  • commons-io-1.3.2.jar
  • commons-logging-1.1.jar
  • freemarker-2.3.13.jar
  • ognl-2.6.11.jar
  • struts2-core-2.1.6.jar
  • xwork-2.1.2.jar

这里写图片描述

3. 配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    id="WebApp_ID" version="3.0">
    <display-name>Struts2_0100_Introduction</display-name>
    <!-- 利用过滤器的技术 -->
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- 所有的地址都要先经过StrutsPrepareAndExecuteFilter的doFilter方法 -->
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

4. 配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<!-- 这部分就是从struts-2.1.6\apps\struts2-blank-2.1.6\WEB-INF\classes拷贝出来的内容 -->
<!--  
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />
    <constant name="struts.devMode" value="false" />

    <include file="example.xml"/>



    <package name="default" namespace="/" extends="struts-default">
        <default-action-ref name="index" />
        <action name="index">
            <result type="redirectAction">
                <param name="actionName">HelloWorld</param>
                <param name="namespace">/example</param>
            </result>
        </action>
    </package>
-->

     <!-- 代表开发者模式  如果value=true 修改的内容可以马上实现 -->
     <constant name="struts.enable.DynamicMethodInvocation" value="true" />

     <package name="default" namespace="/" extends="struts-default">

     <!-- 如果URL的地址是hello_struts结尾的,就跳转到result的地址 -->
        <action name="hello_struts">
            <!-- 这里的result地址,我用的是默认index.jsp -->
            <result>
               /index.jsp
            </result>
        </action>
    </package>
</struts>

5. index.jsp(大部分都是默认的只改了title和body)

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>Hello Struts2</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
    Hello Struts2  <br>
  </body>
</html>

6. 结果

实验结果动图

HelloStruts框图

【注意】此框图,并没有具体说出其中原理,具体的后面再讨论,因为太精深的原理性东西,我现在也不太懂……

HelloStruts框图

参考

百度百科–Struts2
http://baike.baidu.com/link?url=DPkWSnOeVk4ap6NCOQWE51UmPFuHO5exP_Uc33YrZZuKkh1GVvnmpLTt_-6H3jl_ESnB2wxd__fkCeyIvYRgnUnSA8kRhzIwjq8hYbApDcuXH04GHGXQlvSQITNDVCivK1yD1jer9_PVDhWfZDetYa

若有任何不合理之处,请您指正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值