在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处?

设计目标

Struts设计的第一目标就是使MVC模式应用于web程序设计。在这儿MVC模式的好处就不在提了。

技术优势

Struts2有两方面的技术优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,The JavaServlet API揭示了Java Servlet只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进行程序设计。

二是提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所以请求进行处理的关键组件,如:拦截器、OGNL表达式语言、堆栈。

因为struts2有这样目标,并且有这样的优势,所以,这是我们学习struts2的理由,下面,我们在深入剖析一下struts的工作原理。

工作原理

Suruts2的工作原理可以用下面这张图来描述,下面我们分步骤介绍一下每一步的核心内容

  

  看到上面的解释,如果有困惑,先不用着急,我们先做一个实例,通过实例来理解上面的解释,我想这是对于初学者最佳的学习路线,好了,下面我就带领大家一到进入Struts2的世界。

  所谓工欲善其事必先利其器,我们需要先把Struts2的配置jar文件下载好,以便接下来的开发使用,进入Struts官网,下载你需要的Struts版本,这里我们用到的是struts-2.3.16.1,下载好Struts版本,解压,关于jar包的管理,个人建议,大家将我们经常使用的jar文件,统一分类保存在一个位置,这样方便我们后续进行jar的引用,我们知道eclipse为我提供的有一个User libraries,我们可以添加自己的libraries来管理我们的jar文件。

  下载好我们的Struts,下面我们需要下载一个Tomcat服务器,用来部署我们的Struts项目,这里需要说明的时,安装Tomcat之前必须安装JAVA jdk,否则将会出现安装不成功提示,还有一点需要说明的是,Tomcat这里建议大家安装解压版本,方便我们的接下来myEclipse的集成,做好这些准备工作,下面我们就可以开始我们第一个Struts2项目开发了。

  打开我们的myEclipse,将我们刚刚安装好的Tomcat服务器集成上,点击myEclipse上方的Window--》preferences:

  

  配置好Tomcat,下面创建一个Helloword工程,将我们的jar文件导入,这里教大家一个小技巧,这样以后我们再导入jar文件时就会方便很多,具体操作如下:

  

  

  

  导入jar文件后,我们需要配置一些我们的Struts2环境,打开我们的工程WebRoot下的WEB-INF,找到web.xml,添加Struts2的基本配置信息:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

  配置好我们的web.xml,下面添加我们的Struts.xml文件,这个文件如何编写呢?答案很简单,打开我们的Struts解压文件,找到apps下的struts2-blank,解压该文件,解压后找到struts2-blank\WEB-INF\classes下的struts.xml,将这个文件拷贝到我们的工程src目录下,到这里关于Struts开发环境的配置基本完成,下面我们就一起编写一个简单的Helloword,开启我们的Struts2学习之旅。

  我们的Action文件:

public class Helloword {
public String helloword(){
return "success";
}
}

  我们的Struts配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" />-->
<!-- 设是否为调试模式 -->
<!-- <constant name="struts.devMode" value="true" />--> <!-- <package name="default" namespace="/" extends="struts-default">--> <!-- 默认访问文件 -->
<!-- <default-action-ref name="index" />--> <!-- 出错处理文件 -->
<!-- <global-results>-->
<!-- <result name="error">/error.jsp</result>-->
<!-- </global-results>--> <!-- 错误类型 -->
<!-- <global-exception-mappings>-->
<!-- <exception-mapping exception="java.lang.Exception" result="error"/>-->
<!-- </global-exception-mappings>--> <!-- 访问控制 -->
<!-- <action name="index">-->
<!-- <result type="redirectAction">-->
<!-- <param name="actionName">HelloWorld</param>-->
<!-- <param name="namespace">/example</param>-->
<!-- </result>-->
<!-- </action>-->
<!-- </package>--> <!-- <include file="example.xml"/>--> <package name="default" namespace="/" extends="struts-default">
<action name="helloword" class="com.edu.action.Helloword" method="helloword">
<result name="success">/index.jsp</result>
</action>
</package> </struts>

  最终的目录结构:

  

  到这里我们的入坑篇就为大家介绍完毕,后续内容持续更新中。。。

最新文章

  1. ruby开发环境配置
  2. js动态的把左边列表添加到右边,可上下移动。
  3. 菜鸟的MySQL学习笔记(四)
  4. java 多态,和方法覆盖分析(转)
  5. nginx 禁止非指定域名访问
  6. ViewState是什么
  7. Revit二次开发之绘制钢筋
  8. SCP测试服务器的上行/下行带宽
  9. IOS9中联系人对象的使用及增删改查操作的函数封装
  10. [js高手之路] html5 canvas系列教程 - 认识canvas以及基本使用方法
  11. 小程序实践(十):textarea实现简单的编辑文本界面
  12. 关于Sentry(转)
  13. Spring BeanUtils简单使用
  14. Jmeter遇到线程链接被重置(Connection reset by peer: socket write error)的解决方法
  15. Jedis和JAVA对象的序列化和反序列化的使用
  16. dede 复制文章,远程图片无法本地化
  17. 风险管理,未雨绸缪——《代码之殇》读书笔记II
  18. 使用Spring boot开发RestFul 风格项目PUT/DELETE方法不起作用
  19. qt——简单程序一步步来
  20. freemarker的${!}

热门文章

  1. iOS 之 编外知识点
  2. 使用 Redis 统计在线用户人数
  3. Spark中的键值对操作
  4. 样式(Style)和主题(Theme)资源——样式资源
  5. 40+ Sublime Text 最佳插件汇总
  6. Delphi判断一个字符是否为汉字的最佳方法
  7. HDU-1862-EXCEL排序
  8. JSP中使用Taglib
  9. 转:C# Process.Start()方法详解
  10. 开源半成品的Web版工作流模板设计器(基于AngularJS 2和Redux), 还在继续填坑中