SpringMVC框架搭建

来源:互联网 发布:天书世界太极4升5数据 编辑:程序博客网 时间:2024/05/22 06:15

                                                springMVC框架搭建

一、直接建立Maven项目方法

1、建立Maven项目

接下来使用Eclipse的maven构建一个web项目,以构建SpringMVC项目为例:

1.1 选择建立Maven Project

选择File -> New -> Other,在New窗口中选择 Maven -> Maven Project。点击newxt。

 

1.2 选择项目路径

Use default Workspace location默认工作空间。

1.3 选择项目类型

在Artifact Id中选择maven-archetype-webapp

 

1.4 输入Group ID和 Artifact ID,以及Package

Group ID一般写大项目名称。Artifact ID是子项目名称。

例如Spring的web包,Group ID:org.springframework,artifactId:spring-web。

Package是默认给你建一个包,不写也可以。

1.5 刚建立好后的文件结构如下图

如果这里显示的内容多,一般是Filters设置的问题。或perspective为JavaEE模式,改成Java模式就可以了。


2、配置Maven项目

接下来就需要更改好多配置了。

2.1 添加Source文件夹

接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。右键项目根目录点击New ->Source Folder,

建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。


2.2更改class路径

右键项目,Java Build Path -> Source

下面应该有4个文件夹。src/main/java,src/main/resources,src/test/java ,src/test/resources。

双击每个文件夹的Output folder,选择路径。

src/main/java,src/main/resources,选择target/classes;

src/test/java,src/test/resources, 选择target/test-classes;

选上Allow output folders for source folders.

在此处还要更改:

更改文件夹显示的顺序:点击Order and Export。

更改JDK版本:在Libraries双击JRESystem Library,要1.6版本(可自行选择jdk版本)。

2.3把项目变成Dynamic Web项目

 2.3.1右键项目,选择Project Facets,点击Convertto faceted from

2.3.2配置Project Facets

更改Dynamic Web Module的Version为2.5。(3.0为Java7的)。

如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。

2.4设置部署程序集(Web Deployment Assembly)

上面步骤设置完成后,点击OK,Properties窗口会关闭,在右键项目打开此窗口。在左侧列表中会出现一个Deployment Assembly,点击进去后,如下图:


此处列表是,部署项目时,文件发布的路径。

1,我们删除test的两项,因为test是测试使用,并不需要部署。

2,设置将Maven的jar包发布到lib下。

Add-> Java Build Path Entries -> Maven Dependencies -> Finish

设置完成效果图


3、向maven项目中添加jar包

maven可以管理项目依赖的jar包,通过groupID、artifactId以及版本号可以唯一确定一个jar包。这样可以防止老式Web项目中WEB-INF/lib下jar包不一致的问题。并且maven还会自动下载添加进的jar包所依赖的jar包。

 

3.1 在pom.xml中添加所需要的jar包

使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来dependencies内容。

a).打开项目中的pom.xml文件,并点击Dependencies标签,点击add添加新的依赖

b).如果知道依赖的group id和artifact id,可以直接填写,如果不清楚,可以输入关键字进行查询,或是到http://search.maven.org网站查询


4、构建SpringMVC框架

4.1配置pom.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">

 

 <modelVersion>4.0.0</modelVersion>

 <packaging>war</packaging>

 

 <name>AnjukeDemo</name>

 <groupId>AnjukeDemo</groupId>

 <artifactId>AnjukeDemo</artifactId>

 <version>0.0.1-SNAPSHOT</version>

 

 <build>

   <plugins>

     <plugin>

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

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

        <version>6.1.7</version>

        <configuration>

          <connectors>

            <connectorimplementation="org.mortbay.jetty.nio.SelectChannelConnector">

              <port>8888</port>

              <maxIdleTime>30000</maxIdleTime>

            </connector>

          </connectors>

          <webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>

          <contextPath>/</contextPath>

        </configuration>

     </plugin>

   </plugins>

 </build>

 

 <dependencies>

        <!--junit --> 

        <dependency> 

            <groupId>junit</groupId> 

            <artifactId>junit</artifactId> 

            <version>4.12-beta-3</version> 

            <scope>test</scope> 

        </dependency> 

        <!-- log4j --> 

        <dependency> 

            <groupId>log4j</groupId> 

            <artifactId>log4j</artifactId> 

            <version>1.2.17</version> 

        </dependency> 

         

        <dependency> 

            <groupId>jstl</groupId> 

            <artifactId>jstl</artifactId> 

            <version>1.2</version> 

        </dependency> 

         

        <!-- spring的基本依赖开始 --> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-core</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-expression</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-beans</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-aop</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-context</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-context-support</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-tx</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-web</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency>  

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-jdbc</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-webmvc</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-aspects</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

 

        <dependency> 

            <groupId>org.springframework</groupId> 

            <artifactId>spring-test</artifactId> 

            <version>4.1.2.RELEASE</version> 

        </dependency> 

        <!-- spring的基本依赖结束 -->

 </dependencies>

 

</project>

4.2在webapp下添加一个文件夹“WEB-INF”,在文件夹下添加一个文件“web.xml”(下面的内容可以全部复制过去)

<?xmlversion="1.0"encoding="UTF-8"?>

<web-appxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

   xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

   version="2.5">

   <!--区分项目名称,防止默认重名 -->

   <context-param>

      <param-name>webAppRootKey</param-name>

      <param-value>maven.example.root</param-value>

   </context-param>

 

   <!-- Springlog4j监听器 -->

   <listener>

     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>

   </listener>

 

   <!--字符集过滤器 -->

   <filter>

      <filter-name>CharacterEncodingFilter</filter-name>

   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>

      <init-param>

         <param-name>encoding</param-name>

         <param-value>UTF-8</param-value>

      </init-param>

      <init-param>

         <param-name>forceEncoding</param-name>

         <param-value>true</param-value>

      </init-param>

   </filter>

   <filter-mapping>

      <filter-name>CharacterEncodingFilter</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>

 

   <!-- Spring view分发器 -->

   <servlet>

      <servlet-name>dispatcher0121</servlet-name>

      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

      <init-param>

         <param-name>contextConfigLocation</param-name>

         <param-value>/WEB-INF/dispatcher0121-servlet.xml</param-value>

      </init-param>

      <load-on-startup>1</load-on-startup>

   </servlet>

   <servlet-mapping>

      <servlet-name>dispatcher0121</servlet-name>

      <url-pattern>*.do</url-pattern>

   </servlet-mapping>

 

</web-app> 

web.xml文件里有几个值得注意的地方,上面标红的“dispatcher0121”可以修改为你想要的字符串,但是这个三个地方一定要一样。[servlet-name]+“-servlet.xml”这个是spring配置文件的文件名的命名规则。

4.3在“webapp/WEB-INF/”下再添加一个文件“dispatcher0121-servlet.xml”,这个文件就是上面说的东西(可以全部复制到新建的文件中)

<?xmlversion="1.0"encoding="UTF-8"?>  

   <beansxmlns="http://www.springframework.org/schema/beans"    

          xmlns:aop="http://www.springframework.org/schema/aop"    

          xmlns:context="http://www.springframework.org/schema/context"   

          xmlns:mvc="http://www.springframework.org/schema/mvc"    

          xmlns:tx="http://www.springframework.org/schema/tx"    

          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   

          xsi:schemaLocation="http://www.springframework.org/schema/aop    

           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd    

           http://www.springframework.org/schema/beans    

           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    

            http://www.springframework.org/schema/context    

           http://www.springframework.org/schema/context/spring-context-3.0.xsd    

           http://www.springframework.org/schema/mvc    

           http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd    

           http://www.springframework.org/schema/tx    

           http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">   

       

        <mvc:annotation-driven/>   

        <context:component-scanbase-package="com.anjuke.controller"/>   

       

        <beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver">   

            <propertyname="prefix"value="/WEB-INF/views/"/>   

           <propertyname="suffix"value=".jsp"/>   

        </bean>   

</beans>

 

dispatcher0121-servlet.xml文件中也有要注意的地方,"example0121"这个是接下来会用的包,名字可以随意,但是不能全部是数字。我不想说,我就是偷懒用数字,导致之前建的项目一直有问题。


5.编写一个Controller层测试类

5.1编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:

package com.anjuke.controller;

 

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

publicclassGeneralController {

       @RequestMapping(value="index.do")

       publicvoid index_jsp(Modelmodel){ 

           model.addAttribute("liming","hello 测试"); 

           System.out.println("index.jsp"); 

       } 

}

5.2编写index.jsp页面

首先在src/main/webapp/WEB-INF下建文件夹views。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。

在views下建index.jsp文件

我们使用jstl获取Controlleradd的数据。

Jsp页面代码如下:

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>   

<%@ taglib prefix="c"uri="http://java.sun.com/jsp/jstl/core"%>   

<!DOCTYPEhtml PUBLIC "-//W3C//DTDHTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">   

<html>   

   <head>   

        <metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">   

        <title>Insert title here</title>   

   </head>   

       

   <body>   

        <c:outvalue="${liming}"></c:out>   

   </body>   

</html>

6.发布到tomcat

7.测试

访问地址:http://localhost:8080/AnjukeDemo/index.do

访问结果:

0 0
原创粉丝点击