Struts2之环境配置

在学习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>

  最终的目录结构:

  

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

转载于:https://www.cnblogs.com/AndroidJotting/p/6490645.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372817.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于JavaFX的SimpleDateFormat演示程序

对于使用Java Date进行格式化的新手甚至对于使用Java Date进行格式化的有经验的Java开发人员而言&#xff0c;可能有些棘手的事情是使用SimpleDateFormat规范日期/时间格式。 SimpleDateFormat的基于类级别的Javadoc的文档非常详尽&#xff0c;涵盖了表示日期/时间的各个组成部…

iOS与H5交互

前提&#xff1a;在iOS控制器中加载UIWebView&#xff0c;设置代理&#xff0c;遵守UIWebViewDelegate协议。 一、iOS调用JS方法 通过iOS调用JS代码实现起来比较方便直接调用UIWebView的方法- (nullable NSString *)stringByEvaluatingJavaScriptFromString:(NSString *)script…

markdownTest

MARKDOWNTEST 11111111111111有一种神奇的语言&#xff0c;它比html还简单&#xff0c;它巧妙地将内容与格式整合在一起——它就是Markdown有一种神奇的语言&#xff0c;它比html还简单&#xff0c;它巧妙地将内容与格式整合在一起——它就是Markdown 111111111111111222222222…

Aleri –复杂事件处理

Sybase的Aleri流媒体平台是CEP市场中最受欢迎的产品之一。 它在Sybase的交易平台RAP版本中使用&#xff0c;该版本在资本市场中广泛用于管理投资组合中的头寸。 今天&#xff0c;在这个由多个部分组成的系列文章的第一个部分中&#xff0c;我希望提供Aleri平台的概述&#xff0…

python版本回退_Python爬虫之BeautifulSoup解析之路

上一篇分享了正则表达式的使用&#xff0c;相信大家对正则也已经有了一定的了解。它可以针对任意字符串做任何的匹配并提取所需信息。但是我们爬虫基本上解析的都是html或者xml结构的内容&#xff0c;而非任意字符串。正则表达式虽然很强大灵活&#xff0c;但是对于html这样结构…

WebStorm 运行Rect Native 项目

今天教大家如何直接使用WebStorm这个IDE直接完成编码运行项目工作.这样就可以不用打开Xcode了. 1.首先点击WebStorm右上方的下拉箭头弹出的Edit Configurations.... 2.然后会进入一个配置页面.点击左上方的.在弹出的列表中选中npm.如图. 3.在右边的配置框中,先选择Command为hel…

python编程比赛_用Python编程分析4W场球赛后,2018世界杯冠军竟是…

比赛已经开始&#xff0c;我们不妨用 Python 来对参赛队伍的实力情况进行分析&#xff0c;并大胆的预测下本届世界杯的夺冠热门球队吧&#xff01;通过数据分析&#xff0c;可以发现很多有趣的结果&#xff0c;比如&#xff1a;找出哪些队伍是首次进入世界杯的黑马队伍找出2018…

JavaFX 2 GameTutorial第2部分

介绍 Ť他的是一系列与一个JavaFX 2游戏教程博客条目的第二批。 如果您尚未阅读第1部分&#xff0c;请参阅JavaFX 2游戏教程的简介部分。 在第1部分中&#xff0c;我提到了游戏的某些方面以及原型飞船的简单演示&#xff08;原型由简单的形状组成&#xff09;&#xff0c;该飞船…

sqlyog连接mysql教程_如何用SQLyog实现远程连接MySQL

SQLyog客户端&#xff0c;用root用户远程链接MySQL时&#xff0c;提示ldquo;访问被拒绝rdquo;&#xff0c;在网上搜索了一下原因。原来是MySQL没有授权其远程链1&#xff0c;SQLyog客户端&#xff0c;&#xff0c;用root用户远程链接MySQL时&#xff0c;提示“访问被拒绝”&…

JavaME:Google静态地图API

无论您是需要基于位置的应用程序的地图还是只是出于娱乐目的&#xff0c;都可以使用有史以来最简单的方法&#xff1a;Google Static Maps API。 在这篇文章中&#xff0c;我们将看到如何从纬度和经度获得地图作为图像。 可以使用Location API获得纬度和经度&#xff0c;我们将…

深入探讨JS中的数组排序函数sort()和reverse()

最近在研究Javascript发现了其中一些比较灵异的事情。有点让人感到无语比如&#xff1a; alert(typeof( NaN NaN));//结果为假。 alert(typeof( NaN ! NaN));//结果为真。 嘿嘿&#xff0c;当然这个不是这篇文章要讨论的!!开始我们的正文 首先&#xff0c;我们来看一下JS中sor…

带有谓词的Java中的功能样式-第1部分

您一直在听到将要席卷全球的函数式编程&#xff0c;而您仍然坚持使用普通Java&#xff1f; 不用担心&#xff0c;因为您已经可以在日常Java中添加一些功能样式。 此外&#xff0c;它很有趣&#xff0c;可以节省许多代码行并减少错误。 什么是谓词&#xff1f; 实际上&#xff…

centos 6.5下安装文件上传下载服务

centos 6.5下安装文件上传下载服务 由于每次在CentOS中要下载一些配置文件到物理机&#xff0c;和上传一些文件到服务器&#xff0c;导致来回的开启ftp软件有点麻烦&#xff0c;这里我们可以使用文件上传下载服务&#xff0c;来解决上传和下载的问题。 1.登录服务器 2.执行命令…

Jenkins 入门系列--jenkins 介绍

第一章 Jenkins是什么&#xff1f; Jenkins 是一个可扩展的持续集成引擎。 主要用于&#xff1a; l 持续、自动地构建/测试软件项目。 l 监控一些定时执行的任务。Jenkins拥有的特性包括&#xff1a; l 易于安装-只要把jenkins.war部署到servlet容器&#xff0c;不需要数据库支…

20162303《程序设计与数据结构》第一周学习总结

学号 2016-2017-2 《程序设计与数据结构》第1周学习总结 教材学习内容总结 本周学习了基本的JAVA知识&#xff0c;虽然比较基础&#xff0c;但是在实际过程中还是出现了许许多多的问题&#xff0c;代码一遍遍的敲错&#xff0c;又一遍遍的修改&#xff0c;刚开始甚至不会切换模…

面向接口编程详解(三)——模式研究

通过前面两篇&#xff0c;我想各位朋友对“面向接口编程”的思想有了一定认识&#xff0c;并通过第二篇的例子&#xff0c;获得了一定的直观印象。但是&#xff0c;第二篇中的例子旨在展示面向接口编程的实现方法&#xff0c;比较简单&#xff0c;不能体现出面向接口编程的优势…

错误学习:Java + OSGi

最近&#xff0c;我致力于在OSGi环境中使Apache Hive工作。 虽然没有被证明是小菜一碟&#xff08;软件对吗&#xff1f;。。为什么我不感到惊讶&#xff1f; &#xff09;&#xff0c;它引导我解决了各种Java和OSGi错误。 在这里&#xff0c;我列出了其中一些让我有些吃力的东…

Business Component(BC)和Business Object(BO)

Siebel应用架构的一个成功的地方就是在应用里引入了BC&#xff0c;BO的概念&#xff0c;从而使得几千张关系数据表能够按照业务的含义组织成业务对象&#xff0c;对于业务人员而言具有了业务上的含义&#xff0c;而不仅仅是从技术人员的观点来对待数据&#xff08;就是关系表而…

NetBeans可用性提示

的Java IDE都来了&#xff0c;因为在很长的路要走天的JBuilder的 &#xff08;尽管JBuilder中似乎是一个值得欢迎提前在时间&#xff09;。 当今的Java IDE&#xff08;例如NetBeans &#xff0c; Eclipse &#xff0c; IntelliJ IDEA和JDeveloper &#xff09;是非常先进的工具…

WPF 反编译后错误处理

1. 首先&#xff0c;手动创建一个WPF工程&#xff08;WpfApplicationReflectorDemo&#xff09; 2. 把生成的WpfApplicationReflectorDemo.exe 拖到ILSpy里 3.点击 File -> Save Code...: 相应的代码会生成到指定地方。 4. 打开应用程序&#xff0c;并且编译它&#xff0c;此…