`
yuanlanjun
  • 浏览: 1187162 次
文章分类
社区版块
存档分类
最新评论

搭建springmvc工程

 
阅读更多

1.用maven2生成web工程

在想要创建工程的路径下,打开cmd,输入命令:

mvn archetype:create -DgroupId=com.sw.webwork -DartifactId=webwork -Dversion=1.0 -DarchetypeArtifactId=maven-archetype-webapp

其中:

archetype:create表示要生成一个工程结构;

-DgroupId=com.sw.webwork:定义了pom文件中的groupId;

-DartifactId=webwork:定义了project名称;

-Dversion=1.0:定义了版本号;

-DarchetypeArtifactId=maven-archetype-webapp表示要生成的工程类型是web工程,这个不做修改。

运行了该命令后,系统会在当前目录下生成一个名为webwork的文件夹,里面包含了一个src文件夹,还有一个pom.xml文件。

关于groupId和artifactId的概念,可以阅读如jiangshachina的《Maven入门--概念与实例》:http://www.blogjava.net/jiangshachina/archive/2006/09/01/67080.html


2.将文件夹结构修改为标准项目布局

刚生成的文件夹结构如下:


这不是一个maven标准的文件夹结构,maven的标准项目布局请参看http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html文章。

现在我们所需要做的就是根据maven的标准项目布局来增加一些缺失的文件夹:

1. 在src/main下新增resources文件夹,用于存放配置文件;

2. 在src下新增test文件夹,用于存放测试相关的文件;

3. 在src/test下新增java文件夹,用于存放测试java源文件;

4. 在src/test下新增resources文件夹,用于存放测试用的配置文件;

这样下来之后,文件夹结构变为如下:



3. 添加依赖的jar包

所要依赖jar包的groupId、artifactId和版本号,可以到http://www.mvnrepository.com/查询。


4.为项目添加jetty插件

现在我们想验证一下,这个用maven生成的web工程是否可以跑起来。我们可以通过一个名为jetty的嵌入式web容器来运行这个web工程,从而达到验证功能的效果。

我们需要为这个工程添加jetty插件,在pom.xml中,在<build>标签中增加如下一段配置:

<plugins>

<!--Configuring the Jetty Plugin -->

<plugin>

<groupId>org.mortbay.jetty</groupId>

<artifactId>maven-jetty-plugin</artifactId>

</plugin>

</plugins>

再设置maven compile时的jdk版本,避免默认选择JDK1.3版本进行编译而造成某些问题(http://www.gbsou.com/2009/12/09/1697.html):

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>

接下来,我们在webwork根目录运行”mvn jetty:run”命令,待jetty启动后,在浏览器中输入http://localhost:8080/webwork/链接,我们就可以访问第一个Hello world的页面了。


5.添加Spring MVC特性

在web.xml中定义DispatcherServlet,它是Spring MVC的前端控制器:

<!-- Spring MVC DispatcherServlet -->
<servlet>
<servlet-name>webwork</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

接下来增加servlet mapping,用于指定将交给spring的DispatcherServlet来处理的请求:

<!-- Dispatcher servlet mapping -->
<servlet-mapping>
<servlet-name>webwork</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
然后增加中文支持:

<!-- To support chinese gbk encoding -->
<filter>
<filter-name>CharacterSetEncoding Filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterSetEncoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

再增加context-param和ContextLoaderListener,用于监听自定义的bean配置文件:

<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/*-beans.xml
</param-value>
</context-param>

<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>


配置好web.xml后,我们还需新增webwork-servlet.xml文件,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC
"-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- Autodetect POJOs labeled with the @RequestMapping annotation -->
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />

<!-- Autodetect methods labeled with the @RequestMapping annotation -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

<!-- Autodetect POJOs labeled with the @Controller annotation -->
<context:component-scan base-package="com.sw" />


<!-- Configurer that sets up a shared VelocityEngine for Velocity views -->
<bean id="velocityConfigurer"
class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="velocityProperties">
<props>
<prop key="input.encoding">GBK</prop>
<prop key="output.encoding">GBK</prop>
</props>
</property>
<property name="resourceLoaderPath" value="WEB-INF/views/" />
</bean>
<!-- Simple ViewResolver for Velocity, appending ".vm" to logical view names -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="contentType" value="text/html;charset=gbk" />
<property name="suffix" value=".vm" />
</bean>
</beans>

其中前三个是用来支持SpringMVC的annotation的配置,后面两个是用来支持velocity的配置。


在pom.xml中的<dependencies>中添加springmvc的jar包依赖:

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>2.5.6</version>

</dependency>

再添加velocity的jar包依赖:

<dependency>
<groupId>velocity</groupId>
<artifactId>velocity-dep</artifactId>
<version>1.4</version>
</dependency>


完成后,用mvn jetty:run检测是否能成功启动web服务器。


6. 编写vm和controller


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics