首页 > 其他分享 >springMVC获取请求参数

springMVC获取请求参数

时间:2024-06-16 16:10:19浏览次数:19  
标签:username 请求 springMVC 参数 password public String

目录

4、springmvc获取请求参数

4.1、通过的ServletAPI获取

4.2、通过控制器方法的形参获取请求参数

页面显示

<form th:action="@{/param}" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>

接受请求

@RequestMapping("/param")
public String getParam(String username,String password){
    System.out.println("username:"+username+",password:"+password);
    return "success";
}

只需要在控制器方法的形参位置,设置一个形参,形参的名字和请求参数的名字一致即可

4.3、@RequestParam

@RequestParam是将请求参数和控制器方法的形参创建映射关系

@RequestMapping("/param")
public String getParam(@RequestParam(value = "username",required = true,
        defaultValue = "hello")String username, String password){
    /**
     * @RequestParam注解的属性:
     * value:设置和形参绑定的请求参数的名字
     * required:设置是否必须传输value所对应的请求参数
     *          默认值为true,表示value所对应的请求参数必须传输,否则页面报错
     *          Required String parameter 'xxx' is not present
     *          若设置为false,则表示value所对应的请求参数不是必须传输,
     *          如果此时获取该参数的值,则为null
     *defaultValue:设置当没有传输value所对应的请求参数时,
     *              为形参设置的默认值,此时和required属性值无关
     */
    System.out.println("username:" + username + ",password:" + password);
    return "success";
}

4.4、@RequestHeaher

@RequestParam是将请求头信息和控制器方法的形参创建映射关系

@RequestMapping("/param")
public String getParam(@RequestParam(value = "username",required = true,
        defaultValue = "hello")String username, String password,
                       @RequestHeader("referer") String referer){

4.5、@CookieValue

@CookieValue是将cookie数据和控制器方法的形参创建映射关系

@CookieValue("JSESSIONID")String jsessionId

如果没有cookie数据JSESSIONID会报错:

Missing cookie 'JSESSIONID' for method parameter of type String

4.6、通过pojo获取请求参数

可以在控制器方法的形参位置设置一个实体类类型的形参,此时如果浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值

pojo

public class User {
   private  Integer id;
   private String username;
   private String password;

   public User() {
   }

   public User(Integer id, String username, String password) {
       this.id = id;
       this.username = username;
       this.password = password;
   }

   public Integer getId() {
       return id;
   }

   public void setId(Integer id) {
       this.id = id;
   }

   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;
   }

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

Index.html

<form th:action="@{/param/pojo}" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>

控制器

@RequestMapping("/param/pojo")
public String getParamByPojo(User user){
    System.out.println(user);
    return "success";
}

4.7解决获取请求参数的乱码问题

Springmvc提供的编码过滤器CharacterEncodingFilter

encoding->utf-8
forceEncoding->true

**SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效 **

<!--配置springmvc的编码过滤器-->
<filter>
    <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

标签:username,请求,springMVC,参数,password,public,String
From: https://www.cnblogs.com/ning23/p/18250726

相关文章

  • 爬虫 | 异步请求aiohttp模块
    aiohttp模块,也就是asynciohttp操作#1.创建一个对象aioreq=aiohttp.ClientSession()>>>即对应异步的requests#2.用这个异步requests来发送请求resp=aioreq.get(url)#3.异步写入文件,用到aiofiles模块,pip安装,可学习:https://www.w3cschool.cn/article/86236403.h......
  • 要将URL参数转换为JSON对象,可以使用以下函数:
    要将URL参数转换为JSON对象,可以使用以下函数:javascriptfunctiongetQueryParams(url){//使用正则表达式提取URL参数constparamsString=url.split('?')[1];if(!paramsString){return{};}//将参数字符串分割成数组,并解析键值对constparams=......
  • 内核参数kernel.shmall和kernel.shmmax
    在Linux系统中,内核参数kernel.shmall和kernel.shmmax与共享内存(SystemV共享内存)有关,它们分别定义了系统可以分配的共享内存段的最大页数和单个共享内存段的最大字节数。以下是一些关于这些参数的推荐设置:kernel.shmall:这个参数控制可以使用的共享内存的总页数。Linux共享内存......
  • ffmpeg封装和解封装介绍-(9)根据输入时间参数和文件名调整截断时间
    头文件:xformat.h#pragmaonce///<summary>///封装和解封装基类///</summary>#include<mutex>structAVFormatContext;structAVCodecParameters;structAVPacket;structXRational{intnum;///<Numeratorintden;///<Denominator......
  • servlet数量太多,搞个轻量级springmvc
    这两天用jsp+servlet+MySQL开发了一个企业网站,后台和前台都有,功能已经实现了,现在总结发现,servlet是真的多,我这个系统有7个表,后台实现一遍增删改查,就得有28个servlet,而且还有前台的部分,servlet的数量真的太多了,想想看springmvc,其实是可以写一个轻量级的springmvc的。在Servl......
  • Spring基础 - SpringMVC请求流程和案例
    前文我们介绍了Spring框架和Spring框架中最为重要的两个技术点(IOC和AOP),那我们如何更好的构建上层的应用呢(比如web应用),这便是SpringMVC;SpringMVC是Spring在SpringContainerCore和AOP等技术基础上,遵循上述WebMVC的规范推出的web开发框架,目的是为了简化Java栈的web开发。......
  • idea中给java程序传启动参数的说明
    一、idea中给java程序传启动参数的说明在idea中运行java程序时可以传递三种类型的参数:vm参数,环境变量参数,程序参数publicclassMyTest{publicstaticvoidmain(String[]args){//获取vmoptions传递的参数Stringparam1=System.getProperty("v......
  • 03-appium环境配置和启动参数设置
     参考文章:https://blog.csdn.net/lovedingd/article/details/110949993一、appium介绍    Appium是一个开源、跨平台的自动化测试框架,支持Android、IOS等平台,同时也支持多语言,比如:Java、Python等。        Appiumu通过扩展Selenium的WebdriverJSON协议,使......
  • Matlab Simulink 的PID参数整定方法【1】
    MatlabSimulink提供的控制参数整定效果还是值得肯定的,在此记录本人进行PID参数整定的过程,有不对之处忽略即可,但更欢迎批评指正。资料引用(基于Matlab官方)CascadeDigitalPIDControlDesignforPowerElectronicConvertersMultiloopControlDesignforBuckConverte......
  • Midjourney 参数列表 --p
    --Personalization也写作--p,加上之后,可以生成符合个人审美偏好的图像。使用步骤:1.点击 https://www.midjourney.com/rank 对图片进行排名。不确定哪个更符合你的审美,可以跳过。这一步就是在确认你的个性化审美偏好。官方建议至少评价100组,理论上选得越多,midjourney越能理......