首页 > 代码库 > SpringMVC环境搭建---xml版及注解版

SpringMVC环境搭建---xml版及注解版

一、建立 JavaWeb 项目(基于Intellij 14.0.3搭建)

  1、建立一个 Java 项目,在项目下新建一个文件夹 webapp ,然后在该文件夹下新建一个 WEB-INF 文件夹;

  2、在 WEB-INF文件夹下建立 web.xml 文件,从 tomcat 安装路径 /conf/web.xml 中拷贝基本的文档结构,修改相应编码为 utf-8;

  3、在 WEB-INF 下建立 jsp 文件夹,用来存放相关jsp 文件(MVC 中的 V);

  4、在 WEB-INF 下建立 lib 文件夹,用来存放相关 jar 包;

  5、在 WEB-INF 下建立 web.xml 文件。

完成后的工程目录如下:

技术分享

 

二、Spring配置:

1、需要导入的包如下:

技术分享

 2、web.xml配置:

1) 打开项目中的 web.xml文件,注意修改文件的web-app标签的相关schema约束如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app 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_3_0.xsd"
         version="3.0">
</<web-app >

2) 在 web.xml 添加一个Spring 的 servlet ,使程序启动时加载此 servlet,配置如下:

<servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>

  注:<load-on-startup>元素标记容器是否在启动的时候就加载这个servlet

   1)它的值必须是一个整数,表示servlet应该被载入的顺序;

     2)当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;

   3)当值小于0或者没有指定时,则表示容器在该servlet被选择时才会去加载;

   4)正数的值越小,该servlet的优先级越高,应用启动时就越先加载;

   5)当值相同时,容器就会自己选择顺序来加载。

3) 配置 spring-url 拦截:

<servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

 注:<url-pattern>/</url-pattern>表示所有后缀为/的url请求都会被spring拦截

4) 配置字符编码过滤器:

    <filter>
        <filter-name>encodingFilter</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>encodingFilter</filter-name>
        <url-pattern>/</url-pattern>
    </filter-mapping>

5) welcome-page配置:

  <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

2. spring-servlet.xml配置(主要是 url 映射,页面目录及控制器配置)

1) WEB-INF文件夹下配置spring-servlet.xml文件(名称取决于上面web.xml文件中的 <servlet-name>标签)

2) 注解版配置如下:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
       http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="cn.com">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    </context:component-scan>

    <mvc:annotation-driven></mvc:annotation-driven>

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="http://www.mamicode.com/WEB-INF/jsp" />
        <property name="suffix" value="http://www.mamicode.com/.jsp" />
    </bean>
</beans>

  说明:

      a)<context:component-scan>:配置spring组件扫描,base-package需要配置项目的包路径

  b)  <bean>: 对转向页面的路径解析。prefix:前缀, suffix:后缀

3) xml版配置如下: 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="http://www.mamicode.com/WEB-INF/jsp" />
        <property name="suffix" value="http://www.mamicode.com/.jsp" />
    </bean>

    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
            <props>
                <prop key="/index/">IndexAction</prop>
            </props>
        </property>
    </bean>

    <bean id="IndexAction" class="cn.com.IndexAction">
        <property name="view">
            <value>index</value>
        </property>
    </bean>
</beans>

   注:在bean中配置有属性(包括 bean 格式的属性)时,bean 对应的 java 文件内必须要定义一个与 property 的 name 名字一样的属性值,并且需要有这个属性值的 getter 和 setter 方法。

3、Controller编码实现:

1) 注解版:

技术分享

 2)xml版:

技术分享

4、index.jsp文件编码:

<%
String data = http://www.mamicode.com/request.getAttribute("Hello").toString();
response.getWriter().write(data);
%>

 

三、 Tomcat配置:

Tomcat版本: apache-tomcat-7.0.54

将项目包下的webapp文件夹放入 tomcat 解压包的 apache-tomcat-7.0.54\webapps\ 目录下,如下:

技术分享

注意将jsp和lib文件夹也移至 WEB-INF 文件夹目录下

ps:  tomcat 的debug方法:

apache-tomcat-7.0.54\bin目录下添加debug.bat,内容如下:

set JPDA_ADDRESS=8000 
set JPAD_TRANSPORT=dt_socket 
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899 
startup 

 

四、 效果展示:

1)注解版:

技术分享

2)xml版:

技术分享

 参考原文:

http://www.cnblogs.com/shinejaie/p/5244258.html  

http://www.cnblogs.com/shinejaie/p/5248159.html

 

SpringMVC环境搭建---xml版及注解版