SpringMVC 01 参数获取

发布时间 2023-09-28 00:24:59作者: OYそ

 pom.xml

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

<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>org.example</groupId>
  <artifactId>SpringMVC</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>SpringMVC Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.1.16</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.47</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.0</version>
    </dependency>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.9.4</version>
    </dependency>
    <!-- <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
       <version>1.7.20</version>
     </dependency>
     <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-classic</artifactId>
       <version>1.2.3</version>
     </dependency>
     <dependency>
       <groupId>ch.qos.logback</groupId>
       <artifactId>logback-core</artifactId>
       <version>1.2.3</version>
     </dependency>-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.10.RELEASE</version>
    </dependency>
    <dependency> <!--json数据形成-->
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <path>/springmvc</path>
          <port>9999</port>
          <uriEncoding>utf-8</uriEncoding>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
pom.xml

1. config

ServletContainerInit

package com.config;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;

import javax.servlet.Filter;

//简化写法
public class ServletContainerInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMVCConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};  //拦截所有
       // return new String[]{"/*.action"};
    }

    //乱码处理 get乱码:修改tomcat配置 post乱码:添加过滤器

    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }


}
/*
* public class ServletContainerInit extends AbstractDispatcherServletInitializer {
    protected WebApplicationContext createServletApplicationContext() {//用于加载SpringMVC的配置类
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(SpringMVCConfig.class);
        return ctx;
    }
    protected WebApplicationContext createRootApplicationContext() {//加载SpringMVC的配置类
        AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
        ctx.register(SpringConfig.class);
        return ctx;
    }
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}*/
ServletContainerInit

SpringConfig

import org.springframework.context.annotation.Configuration;

@Configuration
public class SpringConfig {
}

SpringMVCConfig

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@ComponentScan({"com.controller"})
@EnableWebMvc//支持json格式数据返回
public class SpringMVCConfig {
}

2. entity

package com.entity;

public class User {
    private String name;
    private String password;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public User(String name, String password) {
        this.name = name;
        this.password = password;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}
User

UserVo

package com.entity;

import java.util.List;

public class UserVo {
    List<User> users;

    public List<User> getUsers() {
        return users;
    }

    public void setUsers(List<User> users) {
        this.users = users;
    }

    @Override
    public String toString() {
        return "UserVo{" +
                "users=" + users +
                '}';
    }
}

3. controller

UserController

package com.controller;

import com.entity.User;
import com.entity.UserVo;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

@Controller
public class UserController {
    @RequestMapping("/user/save.action") //请求路径映射
    @ResponseBody //返回json
    public String save(){
        System.out.println("save User");
        return "{'msg':'user success'}";
    }
/*传的参数:字符串,表单,json,*/
//http://localhost:8080/SpringMVC/user/getStringParam.action?name=wang&&password=12
    @RequestMapping("/user/getStringParam.action")
    @ResponseBody //返回字符串
    public String getStringParam(String name,String password){
        System.out.println("getStringParam:  "+name+"  ,"+password);
        return "{'msg':'getStringParam success'}";
    }
//http://localhost:8080/SpringMVC/user/getFormParam.action
    @RequestMapping("/user/getFormParam.action")
    @ResponseBody //返回表单参数
    public String getFormParam(User user){
        System.out.println("getFormParam:  "+user.getName()+"  ,"+user.getPassword());
        return "{'msg':'getFormParam success'}";
    }

    @RequestMapping("/user/getArrayParam.action")
    @ResponseBody //返回数组
    public String getArrayParam(String[] hobbys){
        System.out.println("getArrayParam:  "+ Arrays.toString(hobbys));
        return "{'msg':'getArrayParam success'}";
    }

    @RequestMapping("/user/getJsonParam.action")
    @ResponseBody //返回json
    public String getJsonParam(@RequestBody User user){
        System.out.println("getJsonParam:  "+user.getName()+"  ,"+user.getPassword());
        return "{'msg':'getJsonParam success'}";
    }



    @RequestMapping("/user/getListParam.action")
    @ResponseBody //返回list
    public String getListParam(@RequestParam List<String> likes){//不会直接封装,通过@RequestParam 封装成json格式
        System.out.println("getListParam:  "+ likes);
        return "{'msg':'getListParam success'}";
    }
    //接收list集合对象参数  1.form表单
    @RequestMapping("/user/getListEntityFormParam.action")
    @ResponseBody
    public String getListEntityFormParam(UserVo users){
        System.out.println("getListEntityFormParam:  "+ users.getUsers());
        return "{'msg':'getListEntityFormParam success'}";
    }
    //接收list集合对象参数 2.json
    @RequestMapping("/user/getListEntityJsonParam.action")
    @ResponseBody
    public String getListEntityJsonParam(@RequestBody List<User> users){
        System.out.println("getListEntityJsonParam:  "+ users);
        return "{'msg':'getListEntityJsonParam success'}";
    }
    //http://localhost:8080/SpringMVC/user/getDiffNameParam.action
    @RequestMapping("/user/getDiffNameParam.action") //请求路径映射
    @ResponseBody //返回json格式数据  users[0].username
    public String getDiffNameParam(@RequestParam("uname") String username,@RequestParam("pwd") String password){ //接收List集合对象参数
        System.out.println("getDiffNameParam--"+ username+"--"+password);
        return "{'msg':'getDiffNameParam  uccess'}";
    }

   @RequestMapping("/user/getDateParam.action")
    @ResponseBody //返回json
    public String getDateParam(Date date1, @DateTimeFormat(pattern = "yyyy-MM-dd") Date date2){
        System.out.println("getDateParam:  "+date1+"  "+date2);
        return "{'msg':'getDateParam success'}";
    }


   @RequestMapping(value = "/user/getOldServletParam.action" )
    @ResponseBody //返回json
    public void getOldServletParam( HttpServletRequest request, HttpServletResponse response) throws IOException {
        String name = request.getParameter("name");
        System.out.println("getOldServletParam:  "+name);
        response.getWriter().write("{'msg':'getOldServletParam success'}");
    }
}