Spring MVC学习笔记(一)--从网页接受数据方式

从URL请求中获取请求参数方式有以下五种

方式描述
将请求参数放在Controller参数列表中
通过HttpServletRequest获取请求参数
使用ModelAttribute + POJO的方式,将请求参数绑定在POJO中
使用@RequestAttribute方式获取绑定请求参数
使用@PathVariable方式获取请求参数
使用@CookieValue方式获取Cookie参数

方式一:将请求参数放在Controller参数列表中

package controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by luckyboy on 2018/7/17.
 */
@Controller
public class RequestRevceiveController {
    private static Logger logger = LoggerFactory.getLogger(RequestRevceiveController.class);

    /**
     * 1、将表单参数直接写入到controller方法的参数列表中
     * @param username
     * @param password
     * @return
     */
    @RequestMapping(value="/method1",method = RequestMethod.POST)
    public String method1(String username,String password){
        logger.info("method1 : "+username+"--"+password);
        return "/index";
    }

方式二:通过HttpServletRequest获取请求参数

package controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by luckyboy on 2018/7/17.
 */
@Controller
public class RequestRevceiveController {
    private static Logger logger = LoggerFactory.getLogger(RequestRevceiveController.class);
    /***
     * 2、使用HttPServletRequest 获取参数
     * @param request
     * @return
     */
    @RequestMapping(value="method2",method = RequestMethod.POST)
    public String method2(HttpServletRequest request){
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        logger.info("method2 : "+username+"--"+password);
        return "/index";
    } 
}

方式三:使用ModelAttribute + POJO的方式,将请求参数绑定在POJO中

package controller;

import entity.User;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by luckyboy on 2018/7/17.
 */
@Controller
public class RequestRevceiveController {
    private static Logger logger = LoggerFactory.getLogger(RequestRevceiveController.class);
    /**
     * 3、使用@ModelAttribute + POJO的方式获取参数
     * @param user
     * @return
     */
    @RequestMapping(value="/method3")
    public String method3(@ModelAttribute("user") User user){
        logger.info("method3 : "+user.getUsername()+"--"+user.getPassword());
        return "/index";
    }
}

方式四:使用@RequestAttribute(value=”?”,required=false/true)方式获取绑定请求参数

package controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by luckyboy on 2018/7/17.
 */
@Controller
public class RequestRevceiveController {
    private static Logger logger = LoggerFactory.getLogger(RequestRevceiveController.class);
    /**
     * 4、使用@RequestParam(value="参数名",required=false/true)
     * 如果required = false,表示请求参数中不一定要有这个参数
     * 如果required = true,表示请求参数中一定要有这个参数,否则会出错
     * @param username
     * @param password
     * @return
     */
    @RequestMapping(value="/method4")
    public String method4(@RequestParam(value = "username",required =  false )String username,
                          @RequestParam(value = "password",required = false ) String password){
        logger.info("method4 : "+username +"--"+password);
        return "/index";
    }
}

方式五:使用@PathVariable方式获取请求参数

package controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
 * Created by luckyboy on 2018/7/17.
 */
@Controller
public class RequestRevceiveController {
    private static Logger logger = LoggerFactory.getLogger(RequestRevceiveController.class);
    /**
     * 5、使用@PathVariable注解方式获获取路径中传递参数
     * @param username
     * @param password
     * @return
     */
    @RequestMapping(value="/method5/{username}/{password}",method=RequestMethod.GET)
    public String method5(@PathVariable String username,@PathVariable String password){
        logger.info("method5 : "+username +"--"+password);
        return "/index";
    }
}

使用@PathVariable方式获取请求参数,那么URL一定是 http://http:localhost:8088/method5/markliwei/mark这样的形式,不适合用于表单提交的方式,比较适合用于URL重写的方式获取请求参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值