`
macs5242012
  • 浏览: 9130 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用Maven+Jetty配置基于Struts的Web应用

 
阅读更多

       最近打算在入职前把Struts好好的看一看,虽然在最近这一年多里,对基于SSH这种开发模式有了一些实战经验,但由于之前没有系统学习过,所以对这些框架也是用到哪儿了解到哪儿。尤其是Struts,因为我们采用的的SpringMVC,所以对Struts的了解仅限于看过马士兵和传智播客的教程,没有实际的项目经验,这样最大的问题就在于,你看了之后一段时间不用,就又忘记了,相当于白看。但简历上你又必须得写熟悉SSH,因为不写的话,面试机会就会少很多,没办法,很现实的问题。

       说正事,计划先是结合例子把《深入Struts内幕》这本书看看,在了解struts的同时,也学习一下人家是怎么读框架的源码的,掌握这种方式,可以省去很多在网上找现成答案的麻烦。工欲善其事,必先利其器。搭建一个简单的学习环境,这是前提,根据工作中的一些习惯和趋势,我决定使用Maven来构建项目,并使用Jetty作Web服务器,理由是部署和启动方便,而且能和Maven无缝结合。虽然一直在用,但对Maven和Jetty都不太了解,折腾了一个晚上,总算是搭好了一个简单的例子,能够运行,我觉得不错。以后就可以专注于理解struts了,下面把搭建过程总结下来,这样下次忘记了的话,也不用在网上一顿乱找了。

       1)使用Maven构建一个WebApp项目

       Eclipse中如果装有Maven插件的话,建个Maven项目是很方便的事,但是我想借这个机会了解一下Maven的基本操作,所以决定在命令界面来完成创建的操作。作为开源项目来说,官网上的介绍肯定是最全的,所以我直接上在其官网上找到了相关的使用说明,其地址如下:http://maven.apache.org/index.html ,在那上面我很快找到一篇入门介绍:http://maven.apache.org/guides/getting-started/index.html,基本上这篇内容看完了,即使之前从没用过,也至少可以使用了。

       我关注的是如何创建一个WEB应用,通过上面的介绍,命令如下:

mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes \

    -DarchetypeArtifactId=maven-archetype-webapp  -DgroupId=com.oupeng.app \

    -DartifactId=my-webapp

       上面的命令中,archetype:generate 表示创建命令 -D后面接key=value的形式,表示对某个参数进行设置,一般情况下,我们只需要指定groupId和artifactId即可,前者表示项目惟一的组织名,后者表示项目的ID,对于WebApp,需要指定 -DarchetypeArtifactId=maven-archetype-webapp,当然还可以指定一些其它参数,比如version之类的。

       执行完上述命令之后,maven会帮我们建立好一个结构完整的项目,主要包括src/main/resources/目录,src/main/webapp/WEB-INF目录等,以及生成一个pom文件,描述了项目的结构,并引入junit依赖,说明Maven认为测试很重要。就这样一个命令,项目帮我们建立好了,这还是比较方便的。

       简单解释一下Maven的几个常用的命令,compile:编译项目,package:打包,将项目打成一个war包或者jar包,install:将打包好的文件安装到本地的Maven仓库,clean:删除之前创建的jar包,test:编译并运行测试用例。一般情况下,直接使用install即可,我常用的是mvn install -T 8

 

        2)添加Jetty

       因为Jetty可以以插件的形式在maven的Pom文件中配置,非常方便,所以它是不二的Web容器选择,当然生产环境下还是使用Tomcat或者Resin比较好,毕竟功能强大。配置Jetty也很简单,但我配置的时候走了点弯路,最后发现原因是Jetty的新版本和原版本在很多方面有一些差别,所以这个要注意,弄清楚使用的是什么版本,个人建议是显示指定版本号。这样便于控制,代码如下:

        

     <plugins>
      <plugin>
        <groupId>org.mortbay.jetty</groupId>  
        <artifactId>maven-jetty-plugin</artifactId>  
        <version>6.1.26</version>  
        <!--configuration -->
        <configuration>
            <connectors>
                <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
                  <port>9090</port>
                  <maxIdleTime>60000</maxIdleTime>
                </connector>
            </connectors> 
            <contextPath>/strutsDemo</contextPath>
        </configuration>
      </plugin>
    </plugins>

      上面的代码给出了一个比较简单的配置,不过需要注意的是,新版本的Jetty(>=7),artifactId的值是jetty-maven-plugin,而且好像也去掉了org.mortbay.jetty.nio.SelectChannelConnector,用什么代替了,由于我只是想跑通,所以没做进一步的查询,而是指定了7以下的版本。另外还有一个需要注意的地方,就是上面这段代码应该放在<build>节点下,要不然会有问题。

    以上两步部署完成后,再使用mvn jetty:run来启动,浏览器中输入localhost:9090/strutsDemo,能看到Hello World!表示配置成功。另外,上面这段代码参考了jetty的官网中的一些说明,http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html

    3)改造为Struts项目

    参考struts官网上的一篇文章,http://struts.apache.org/release/2.3.x/docs/create-struts-2-web-application-using-maven-to-manage-artifacts-and-to-build-the-application.html,按上面的说明,很方便的就建立了一个简单的struts Web应用。简单的说需要以下三步:

    1. 修改pom.xml文件,加入对struts2.xml的依赖,以及对log4j.xml的依赖,如下:

 

  	<!--struts-->
  	<dependency>
		<groupId>org.apache.struts</groupId>
		<artifactId>struts2-core</artifactId>
		<version>2.3.8</version>
  	</dependency>
  	<!-- log4j -->
  	<dependency>
    	         <groupId>log4j</groupId>
    	         <artifactId>log4j</artifactId>
    	         <version>1.2.17</version>
	</dependency>

     2)修改web.xml文件,添加struts2过滤器,并添加log4j.xml文件到resources目录。如下:

 

  	<!-- filter to start the struts -->
  	<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>

 

     3)添加struts.xml文件,配置action,示例如下:

 

<struts>

	<constant name="struts.devMode" value="true" />

	<package name="basicstruts2" namespace="/firstdemo" extends="struts-default">
		<action name="index">
			<result>/WEB-INF/index.jsp</result>
		</action>
	</package>

</struts>

 以上,配置完成后,重启服务,浏览器中输入:http://localhost:9090/strutsDemo/firstdemo/index,如果能正常出现Hello World,则配置成功。

 

 

总结:这是一次很简单的配置过程,其中一些(struts项目构建)之前已做过好几次,但再次做的时候,还是不知道,又在网上查,我相信这次总结之后,以后不用再查了,除非struts的配置方式有很大的更新。所以虽然花了一个晚上,还是值得的,从明天起,就可以专注于学习struts了。

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    struts2+maven+jetty 示例

    总的来说,这个"struts2Demo"项目展示了如何利用Struts2处理请求、Maven管理依赖和Jetty快速运行Web应用。这种组合为Java Web开发提供了便捷的工具链,便于开发者快速搭建、测试和部署应用程序。

    Maven+jetty+jrebel+m2eclipse+eclipse搭建struts2开发环境

    在现代Java开发中,构建工具、应用服务器、热部署工具以及IDE的集成是提升开发效率的关键因素。...这个环境不仅适用于Struts2框架,也适用于其他基于Maven构建的Java Web项目,是一个通用的开发环境搭建方案。

    maven3 + jetty 新建webapp

    标题 "maven3 + jetty 新建webapp" 涉及到的是使用Apache Maven 3构建工具和Jetty轻量级应用服务器来创建一个新的Web应用程序的过程。在Java开发领域,Maven是广泛使用的项目管理和集成工具,它帮助管理项目的构建、...

    用Maven和Jetty开发调试WEB应用程序

    ### 使用Maven和Jetty开发调试WEB应用程序 #### 前言 在现代软件开发过程中,集成工具如Maven和Jetty极大地提高了开发效率。Maven作为自动化构建工具,能够帮助开发者快速创建、管理和构建项目;而Jetty则是一款轻...

    使用Maven搭建S2SH工程详解一:使用Maven创建struts2工程

    【使用Maven搭建S2SH工程详解一:...这个过程涵盖了Maven的项目管理、Struts2的请求处理、Jetty的本地开发服务器使用,以及Web应用的基础配置。通过这种方式,我们可以快速地启动一个S2SH项目,并进行后续的开发工作。

    [SSH+Maven+Bootstrap视频教程]_03. 项目的安装部署.zip

    项目的安装部署"中,我们将深入探讨如何在Java环境下使用SSH(Struts2、Spring、Hibernate)框架、Maven构建工具以及Bootstrap前端框架来搭建并部署一个完整的Web项目。这个教程面向的是有一定Java基础,希望进一步...

    如何在eclipse jee中创建Maven project并且转换为Dynamic web project

    在Eclipse JEE环境下,创建一个Maven项目并将其转换为Dynamic Web Project是开发Java Web应用程序的常见步骤。Maven是一种强大的项目管理工具,而Dynamic Web Project则是Eclipse中的一个特殊项目类型,专用于Web...

    Felix+struts2做的web示例

    标题 "Felix+Struts2做的web示例" 暗示了这是一个使用Apache Felix作为OSGi容器,并结合Struts2框架构建的Web应用程序。Apache Felix是一个开源的OSGi实现,它允许开发者将应用程序分解为模块化组件,使得代码更易于...

    maven项目中struts的整合

    Maven是一个项目管理和综合工具,它帮助开发者管理项目的构建、报告和文档,而Struts2则是一个基于MVC设计模式的Java Web框架,用于简化开发过程。下面将详细讨论如何在Maven项目中整合Struts2框架,并实现正常的JSP...

    精通J2EE-Eclipse+Struts+Hibernate+Spring整和应用案例-D

    通过以上步骤,开发者可以构建出一个完整的、基于J2EE的Web应用程序,它集成了强大的开发工具、高效的MVC框架、强大的ORM解决方案以及全面的企业级服务。这样的实践案例对于提升开发者在J2EE领域的专业技能至关重要...

    基于Struts2+Hibernate+Spring的公司员工管理系统

    【基于Struts2+Hibernate+Spring的公司员工管理系统】是一个典型的Java企业级应用程序,它利用了Struts2、Hibernate和Spring这三大主流框架构建。这个系统设计的主要目标是为了有效地管理和组织公司的员工信息,提高...

    基于struts的网上审批系统

    【基于Struts的网上审批系统】是一个典型的Java Web应用程序,主要使用了Struts框架来实现。Struts是Apache软件基金会的Jakarta项目中的一个核心框架,它为构建基于J2EE平台的、易于维护的、模块化的Web应用程序提供...

    jetty内嵌到java代码启动

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器功能直接集成到他们的Java应用程序中。这种内嵌式部署模式在开发和调试阶段尤其有用,因为它提供了灵活的控制和快速的反馈循环。...

    Struts2应用的BBS项目

    本项目“Struts2应用的BBS项目”是一个基于Struts2框架的基础论坛(BBS)实现,非常适合初学者了解和学习Struts2的基本概念和用法。 在Struts2中,核心组件包括Action、Result和Interceptor(拦截器)。Action是...

    JAVA论坛系统源码(Struts 2+Hibernate+Spring实现)

    Java论坛系统源码是基于三大...综上所述,这个Java论坛系统源码是一份宝贵的教育资源,它不仅展现了Struts 2、Hibernate和Spring的集成使用,还提供了实践这些技术的实例,有助于加深对Java Web开发的理解和技能提升。

    Java项目案例--基于Struts+hibernate网上书城系统

    Struts是一个开源的Java web框架,它遵循MVC设计模式,用于简化企业级应用的开发。在本项目中,Struts负责控制应用程序的流程,处理HTTP请求,调度到相应的业务逻辑,然后将结果返回给用户。它的核心组件包括Action...

    jbpm + spring + struts 项目

    在深入理解这三个技术的基础上,你还需要掌握Web服务器的配置、Maven或Gradle构建工具的使用、以及可能涉及的前端技术如JSP、HTML、CSS和JavaScript。通过实践这个项目,你可以提升在企业级应用开发中的技能,包括...

    hibernate+struts2 项目源码

    【标题】:“Hibernate+Struts2 项目源码”是一个基于流行Java开发框架的实践项目,旨在教授如何结合使用Hibernate对象关系映射框架与Struts2 MVC(模型-视图-控制器)框架来构建Web应用程序。 【描述】:这个项目...

Global site tag (gtag.js) - Google Analytics