zoukankan      html  css  js  c++  java
  • SpringMVC学习(三)——基于注解配置的springMVC项目

    可运行的附件地址:http://files.cnblogs.com/files/douJiangYouTiao888/springWithAnnotation.zip

    项目说明:

    作者环境:maven3+jdk1.8+spring4

    项目结构:

    父pom配置:

    <project xmlns="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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <!-- 基础组件模块,定义各种公用的组件 -->
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.wang</groupId>
        <artifactId>basicmodule</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>pom</packaging>
        <name>basicmodule</name>
        <url>http://maven.apache.org</url>
        <!-- 常量属性 -->
        <properties>
            <!-- 编码集 -->
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <!-- spring版本 -->
            <springframework.version>4.3.7.RELEASE</springframework.version>
        </properties>
        <!-- 模块定义 -->
        <dependencyManagement>
            <dependencies>
                <!-- spring模块 -->
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-core</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-context</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-webmvc</artifactId>
                    <version>${springframework.version}</version>
                </dependency>
                <!-- servlet-api -->
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>javax.servlet-api</artifactId>
                    <version>3.1.0</version>
                    <!-- <scope>provide</scope> -->
                </dependency>
                <!-- jstl,需要引入jstl.jar和standard.jar -->
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>jstl</artifactId>
                    <version>1.2</version>
                </dependency>
                <!-- <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>javax.servlet-api</artifactId>
                    <version>3.1.0</version>
                    <scope>provide</scope>
                </dependency> -->
            </dependencies>
        </dependencyManagement>
    
    </project>

    pom配置:

    <project xmlns="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.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.wang</groupId>
        <artifactId>springWithAnnotation</artifactId>
        <packaging>war</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <name>springWithAnnotation Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <!-- 父模块,基础模块 -->
        <parent>
            <groupId>com.wang</groupId>
            <artifactId>basicmodule</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
            </dependency>
            <!-- servlet-api -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <scope>provided</scope>
            </dependency>
            <!-- jstl -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
            </dependency>
        </dependencies>
        <build>
            <finalName>springWithAnnotation</finalName>
        </build>
    </project>

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    
    <web-app version="3.0" 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">
        <!--
            源码:spring-web.jar 
            功能:字符集过滤器,设置编码集为UTF-8,解决POST的中文乱码问题。
            参数说明:
                encoding:request的编码集(request.setCharacterEncoding("UTF-8"))
                forceEncoding:默认为false设置为true,response的编码集也强制转变成UTF-8(response.setCharacterEncoding("UTF-8"))
        -->
        <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>
        <!-- 
            源码:spring-web.jar
            默认配置:/WEB-INF/${servlet-name}-servlet.xml,即/WEB-INF/springmvc.xml
            覆盖默认配置:初始化参数:contextConfigLocation,参数多个值使用逗号隔开,如:a.xml,b.xml
         -->
        <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath*:conf/springmvc-annotationconfig.xml</param-value>
            </init-param>
            <!-- 容器初始化加载此servlet -->
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <!-- 
                一般有以下写法:
                *.do    拦截固定格式的请求
                /        rest风格的写法:拦截所有资源,需要针对静态资源做单独处理
                /*        错误写法:会在处理完请求后拦截jsp导致404错误
             -->
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    </web-app>  

    springmvc核心配置文件:springmvc-annotationconfig.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" 
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd  
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd  
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
        <!-- 扫描的包 -->
        <context:component-scan base-package="com.wang"></context:component-scan>
        <!-- 自动装载注解的配置HandlerMapping和HandlerAdapter -->
        <mvc:annotation-driven/>
        
        <!-- 视图解析类类 -->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    </beans>

    java类:

    package com.wang.action;
    
    import java.util.HashMap;
    import java.util.Map;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.servlet.ModelAndView;
    import com.wang.service.WangService;
    
    @Controller
    public class WangAction {
    
        @Autowired
        private WangService wangService;
        @RequestMapping("/sb.do")
        public ModelAndView doTest(@RequestParam(value="name",defaultValue="wang")String aaa,@RequestParam("age")int bbb){
            System.err.println("name:" + aaa + ",age:" + bbb);
            Map<String, Object> maps = new HashMap<String, Object>();
            String result = wangService.doTest();
            maps.put("a", result);
            return new ModelAndView("/index",maps);
        } 
    }
    package com.wang.service;
    
    import org.springframework.stereotype.Service;
    
    @Service
    public class WangService {
        
        public String doTest(){
            return "wly";
        }
    }

    测试URL:

      http://localhost:8088/sb.do?name=wly&age=500

    OK,大功告成~

  • 相关阅读:
    微信小程序开发常用方法
    HTML5 video常用属性
    移动端键盘定制
    移动端弹性滑动以及滑动出界解决方案
    vue移动端Ui组件 mint-ui 使用指南
    vue.js的ajax和jsonp请求
    获取用户地理位置
    如何将一个已有的项目托管到github或是码云上?git的配置
    mvvm模式和mvc模式 概述总结对比
    使用Java的BlockingQueue实现生产者-消费者
  • 原文地址:https://www.cnblogs.com/douJiangYouTiao888/p/6706182.html
Copyright © 2011-2022 走看看