SpringMVC中接收不同类型的数据

1、直接将参数写在controller相应的方法形参中,适用于get方法,不适用于post方法

    /**
     * 1.直接把表单的参数写在Controller相应的方法的形参中
      * @param username
     * @param password
     * @return
     */
    @RequestMapping("/addUser1")
    public String addUser1(String username,String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

url形式:http://localhost/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Controller方法中的入参名称一致。

2、通过HttpServletRequest接收,post方式和get方式都可以。

    /**
     * 2、通过HttpServletRequest接收
      * @param request
     * @return
     */
    @RequestMapping("/addUser2")
    public String addUser2(HttpServletRequest request) {
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

3、通过一个bean来接收,post方式和get方式都可以

1、建立一个和表单对应的bean对象来获取

package demo.model;

public class UserModel {
    
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}

2、用这个bean来封装接收的参数

    /**
     * 3、通过一个bean来接收
      * @param user
     * @return
     */
    @RequestMapping("/addUser3")
    public String addUser3(UserModel user) {
        System.out.println("username is:"+user.getUsername());
        System.out.println("password is:"+user.getPassword());
        return "demo/index";
    }

4、通过@PathVariable获取路径中的参数

    /**
     * 4、通过@PathVariable获取路径中的参数
      * @param username
     * @param password
     * @return
     */
    @RequestMapping(value="/addUser4/{username}/{password}",method=RequestMethod.GET)
public String addUser4(@PathVariable String username,@PathVariable String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

例如,访问http://localhost/SSMDemo/demo/addUser4/lixiaoxi/111111 路径时,则自动将URL中模板变量{username}和{password}绑定到通过@PathVariable注解的同名参数上,即入参后username=lixiaoxi、password=111111

5、使用@ModelAttribute注解获取POST请求的FORM表单数据

<form action ="<%=request.getContextPath()%>/demo/addUser5" method="post"> 
     用户名:&nbsp;<input type="text" name="user.username"/><br/>&nbsp;&nbsp;码:&nbsp;<input type="user.password" name="password"/><br/>
     <input type="submit" value="提交"/> 
     <input type="reset" value="重置"/> 
</form> 

Java controller 如下

    /**
     * 5、使用@ModelAttribute注解获取POST请求的FORM表单数据
      * @param user
     * @return
     */
    @RequestMapping(value="/addUser5",method=RequestMethod.POST)
    public String addUser5(@ModelAttribute("user") UserModel user) {
        System.out.println("username is:"+user.getUsername());
        System.out.println("password is:"+user.getPassword());
        return "demo/index";
    }

6、用注解@RequestParam绑定请求参数到方法入参

 

当请求参数username不存在时会有异常发生,可以通过设置属性required=false解决,例如: @RequestParam(value="username", required=false)

    /**
     * 6、用注解@RequestParam绑定请求参数到方法入参
      * @param username
     * @param password
     * @return
     */
    @RequestMapping(value="/addUser6",method=RequestMethod.GET)
    public String addUser6(@RequestParam("username") String username,@RequestParam("password") String password) {
        System.out.println("username is:"+username);
        System.out.println("password is:"+password);
        return "demo/index";
    }

 

原文来自:https://www.cnblogs.com/xiaoxi/p/5695783.html

 

转载于:https://www.cnblogs.com/GeorgeGong/p/8000492.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置vsftpd虚拟用户登录,需要按照以下步骤进行操作: 1. 安装vsftpd服务 在Linux系统中,使用以下命令安装vsftpd服务: ``` sudo apt-get update sudo apt-get install vsftpd ``` 2. 创建虚拟用户账号文件 使用以下命令创建虚拟用户账号文件: ``` sudo touch /etc/vsftpd/virtual_users.txt ``` 在该文件中,每行输入一个虚拟用户的账号和密码,格式为: ``` username1 password1 username2 password2 ... ``` 3. 创建虚拟用户目录 使用以下命令创建虚拟用户目录,例如: ``` sudo mkdir /home/vsftpd/user1 sudo mkdir /home/vsftpd/user2 ``` 4. 创建虚拟用户配置文件 使用以下命令创建虚拟用户配置文件: ``` sudo touch /etc/vsftpd/virtual_users.conf ``` 在该文件中,为每个虚拟用户配置对应的目录和权限,格式为: ``` user1 local_root=/home/vsftpd/user1 write_enable=YES chroot_local_user=YES user2 local_root=/home/vsftpd/user2 write_enable=YES chroot_local_user=YES ``` 其中,`local_root`指定虚拟用户的根目录,`write_enable`指定是否允许虚拟用户上传和下载文件,`chroot_local_user`指定是否将虚拟用户限制在其根目录下。 5. 配置vsftpd服务 编辑vsftpd服务的配置文件`/etc/vsftpd.conf`,做以下修改: ``` anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # 添加以下内容 user_config_dir=/etc/vsftpd/user_conf virtual_use_local_privs=YES guest_enable=YES guest_username=ftp user_sub_token=$USER local_root=/home/vsftpd/$USER ``` 其中,`user_config_dir`指定用户配置文件的目录,`virtual_use_local_privs`指定虚拟用户使用本地权限,`guest_enable`指定启用虚拟用户登录,`guest_username`指定虚拟用户用户名,`user_sub_token`指定虚拟用户根目录的变量名。 6. 创建用户配置文件目录 使用以下命令创建用户配置文件目录: ``` sudo mkdir /etc/vsftpd/user_conf ``` 7. 创建用户配置文件 在用户配置文件目录中,为每个虚拟用户创建一个配置文件,例如: ``` sudo touch /etc/vsftpd/user_conf/user1 sudo touch /etc/vsftpd/user_conf/user2 ``` 在该文件中,为每个虚拟用户指定其对应的虚拟用户配置文件,格式为: ``` include /etc/vsftpd/virtual_users.conf ``` 8. 重启vsftpd服务 使用以下命令重启vsftpd服务: ``` sudo systemctl restart vsftpd ``` 完成以上步骤后,即可使用虚拟用户登录vsftpd服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值