zoukankan      html  css  js  c++  java
  • SpringMVC基础框架搭建

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/
      近些年来目前很多公司已经SpringMVC作为Struts的替代方案了,其优劣势在此不做详细讲解了。而互联网分布式系统的盛行使得单机web已经不再流行,更多的方向是动静分离。动静分离是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用(Java或其他后台语言)分开部署。前后端使用异步方式(比如:ajax之类)进行数据交互。本文主要讲解使用SpringMVC对外提供接口URL并返回json数据。
    具体步骤如下:

    1、web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0">
    
      <!--configure the setting of springmvcDispatcherServlet and configure the mapping-->
      <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:springmvc-servlet.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
      </servlet>
    
      <servlet-mapping>
          <servlet-name>springmvc</servlet-name>
          <url-pattern>/</url-pattern>
      </servlet-mapping>
      
    </web-app>

    2、spring-servlet.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.mao2080.*"/>
        
        <!-- 配置启用注解 -->
        <mvc:annotation-driven />
        
    </beans>

    3、pom.xml

     1 <project xmlns="http://maven.apache.org/POM/4.0.0" 
     2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     4   <modelVersion>4.0.0</modelVersion>
     5   <groupId>mao.mao2080</groupId>
     6   <artifactId>springmvc</artifactId>
     7   <version>0.0.1-SNAPSHOT</version>
     8   <packaging>war</packaging>
     9   <dependencies>
    10       <dependency>
    11         <groupId>org.springframework</groupId>
    12         <artifactId>spring-webmvc</artifactId>
    13         <version>4.3.0.Release</version>
    14     </dependency>
    15     <dependency>
    16         <groupId>javax.servlet</groupId>
    17         <artifactId>javax.servlet-api</artifactId>
    18         <version>4.0.0</version>
    19         <scope>provided</scope>
    20     </dependency>
    21   </dependencies>
    22 </project>

    4、controller

     1 package com.mao2080.controller;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 
     5 import org.springframework.stereotype.Controller;
     6 import org.springframework.web.bind.annotation.ModelAttribute;
     7 import org.springframework.web.bind.annotation.RequestMapping;
     8 import org.springframework.web.bind.annotation.ResponseBody;
     9 
    10 import com.mao2080.beans.ResObject;
    11 import com.mao2080.beans.User;
    12 
    13 @Controller
    14 @RequestMapping("/testController")
    15 public class TestController {
    16     
    17     /**
    18      * 
    19      * 描述:登录
    20      * @author Administrator
    21      * @created 2017年12月2日 下午12:47:41
    22      * @since 
    23      * @param request
    24      * @param o
    25      * @return
    26      */
    27     @RequestMapping("/login")
    28     @ResponseBody
    29     public ResObject homeProduct(HttpServletRequest request, @ModelAttribute User o) {
    30         if("admin".equals(o.getUserName()) && "admin".equals(o.getUserName())){
    31             return new ResObject();
    32         }
    33         return new ResObject(403, "账号或密码错误...", null);
    34     }
    35 
    36 }

    5、ResObject

     1 package com.mao2080.beans;
     2 
     3 /**
     4  * 
     5  * 描述:返回POJO
     6  * @author Administrator
     7  * @created 2017年12月2日 下午12:46:20
     8  * @since
     9  */
    10 public class ResObject {
    11     
    12     /**状态码*/
    13     private int code = 200;
    14     
    15     /**描述信息(如果是异常则返回异常信息)*/
    16     private String desc = "Success";
    17     
    18     /**成功后数据*/
    19     private Object data;
    20     
    21     public ResObject() {
    22         super();
    23     }
    24 
    25     public ResObject(Object data) {
    26         super();
    27         this.data = data;
    28     }
    29 
    30     public ResObject(int code, String desc, Object data) {
    31         super();
    32         this.code = code;
    33         this.desc = desc;
    34         this.data = data;
    35     }
    36 
    37     public int getCode() {
    38         return code;
    39     }
    40 
    41     public void setCode(int code) {
    42         this.code = code;
    43     }
    44 
    45     public String getDesc() {
    46         return desc;
    47     }
    48 
    49     public void setDesc(String desc) {
    50         this.desc = desc;
    51     }
    52 
    53     public Object getData() {
    54         return data;
    55     }
    56 
    57     public void setData(Object data) {
    58         this.data = data;
    59     }
    60 
    61 }

    6、User

     1 package com.mao2080.beans;
     2 
     3 /**
     4  * 
     5  * 描述:用户pojo
     6  * @author Administrator
     7  * @created 2017年12月2日 下午12:44:43
     8  * @since
     9  */
    10 public class User {
    11     
    12     private String userName;
    13     
    14     private String password;
    15     
    16     public User() {
    17         super();
    18     }
    19 
    20     public String getUserName() {
    21         return userName;
    22     }
    23 
    24     public void setUserName(String userName) {
    25         this.userName = userName;
    26     }
    27 
    28     public String getPassword() {
    29         return password;
    30     }
    31 
    32     public void setPassword(String password) {
    33         this.password = password;
    34     }
    35 
    36 }

    7、访问结果

    8、目录结构

    9、资源下载

    https://files.cnblogs.com/files/mao2080/springmvc.zip

  • 相关阅读:
    【草稿】自定义ASP.NET MVC Html辅助方法
    Python安装(64位Win8.1专业版)
    部署WP程序到自己的手机
    C++中vector小学习,顺便查了下<stdio.h>(或<cstdio>)
    关于ENVI5.0菜单栏不能正常显示(win7 x86系统)
    如何让一个精灵跟随触点移动
    GDAL在VS下配置测试
    【docker】修改现有容器的端口
    Django channles线上部署(腾讯云)
    【leafletjs】添加标记、轨迹线与删除标记、轨迹线
  • 原文地址:https://www.cnblogs.com/mao2080/p/7954134.html
Copyright © 2011-2022 走看看