当前位置: 首页 > news >正文

建设审批网站查询大数据统计网站

建设审批网站查询,大数据统计网站,动态网站开发题加答案,个人备案的域名拿来做别的网站SpringMVC获取请求参数 通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 index.html <form th:action"{/test/param}" method"post">用户名&#…

SpringMVC获取请求参数

通过ServletAPI获取

HttpServletRequest作为控制器方法的形参,此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象

index.html

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

TestParamController.java

package com.atguigu.SpringMVC.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;
import java.io.UnsupportedEncodingException;@Controller
public class TestParamController {@RequestMapping("/test/param")public String getParamByServletAPI(HttpServletRequest request){String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("username为:"+username+",password为:"+password);return "success";}
}

成功获取到表单提交的信息,这是采用原生Servlet的方式获取

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

在控制器方法的形参位置,设置和请求参数同名的形参,当浏览器发送请求,匹配到请求映射时,在DispatcherServlet中就会将请求参数赋值给相应的形参

index.html

    <form th:action="@{/testParam}" method="post">用户名:<input type="text" name="username">密码:<input type="password" name="password"><input type="submit" value="提交"></form>

TestParamController.java

    @RequestMapping("/testParam")public String getParam(//@RequestParam注解以键值对的方式获取到值并赋值给变量@RequestParam("username") String name,//自动匹配String password){System.out.println("username为:"+name+",password为:"+password);return "success";}

成功获取到表单提交的信息(可以省略@RequestParam注解,SpringMVC匹配到请求映射时就会自动为参数赋值)

@RequestParam注解一共有三个属性:

  • value:指定为形参赋值的请求参数的参数名
  • required:设置是否必须传输此请求参数,默认值为true,表示当前请求必须传输value所指定的请求参数(只要有请求参数即可,值为空都没问题),若没有传输该请求参数,且没有设置defaultValue属性则会报错:400:Required String parameter 'xxx' is not present,为false时没有获取到请求参数时值为null
  • defaultValue:不管required属性值为true或false,当value所指定的请求参数没有传输或传输的值为""时,则使用默认值为形参赋值

@RequestHeader:将请求头信息控制器方法的形参创建映射关系,属性和用法同@RequestParam

  • 获取来源信息:@RequestHeader("referer") String referer
    • 输出结果:http://localhost:8080/SpringMVC/

@CookieValue:将cookie数据控制器方法的形参创建映射关系,属性和用法同@RequestParam,因为session里面存储的数据就是cookie的形式,所以获取session对象之后就有cookie数据了

  • 获取cookie的JSESSIONID信息:

    • 			xxx(HttpServletRequest request,@CookieValue("JSESSIONID") String jsessionId)
			HttpSession session = request.getSession();//获取session对象即可System.out.println(jsessionId);
  • 输出结果:B096EFFCB054BC496DCD805203C49690

通过POJO获取请求参数

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

index.html

    <!--根据映射匹配,get方式和post方式都可以匹配成功--><form th:action="@{/testPOJO}">ID:<input type="text" name="id">用户名:<input type="text" name="username">密码:<input type="password" name="password">年龄:<input type="text" name="age">成绩:<input type="text" name="gender">邮箱:<input type="email" name="email"><input type="submit" value="提交"></form>

TestPOJOController.java

    @RequestMapping("/testPOJO")public String testPOJO(User user){System.out.println(user);//User{id=6, username='yxx', password='123', age=18, gender='97', email='156899@qq.com'}return "success";}

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

在JavaWeb中解决乱码问题采用request.setCharacterEncoding("UTF-8")的语句解决,在SpringMVC中因为会在访问地址对应方法之前就自动获取了请求参数,而上述语句需要在获取前设置才有效,为了解决获取请求参数的乱码问题,可以使用SpringMVC提供的编码过滤器CharacterEncodingFilter,使用前必须在web.xml中先进行注册

Tomcat8及以上对于以get方式提交表单的表单信息获取参数默认为UTF-8的编码方式,只有post方式需要设置,而Tomcat7两种方式都要设置

web.xml

	<!--配置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>

SpringMVC中处理编码的过滤器一定要配置到其他过滤器之前,否则无效,且由于配置是全局生效,无论get还是post方式都不会再乱码

http://www.hkea.cn/news/130714/

相关文章:

  • php 深圳 电子商务网站开发seo优化好做吗
  • 网站建设开发技术天津济南网站设计
  • 信息公开网站建设网店推广分为哪几种类型
  • 南皮网站建设价格seo搜索引擎优化方式
  • 网上购物系统的设计与实现论文长沙seo优化公司
  • 风景旅游网页制作素材seo推广灰色词
  • 网站制作网站建设网页设计页面
  • 网站开发兼容极速字体颜色推荐seo平台优化服务
  • wordpress建站流量齐三seo顾问
  • 怎么看一个网站做没做竞价公司网站怎么建立
  • seo神马网站推广器怎么做神马搜索排名seo
  • 桂林漓江景区网站优化推广排名
  • 网站首页模板设计图网络推广平台代理
  • 一女被多男做的视频网站搜全网的浏览器
  • 建设公司网站费用电脑培训课程
  • 电子商务网站建设课后题女生学网络营销这个专业好吗
  • 新疆兵团建设网站商丘seo优化
  • 手机微信网站怎么做的软文发布网站
  • 传奇手游发布网站seo排名优化方式
  • 网站建设明细报价外链信息
  • 哪个网站做漫画可以有钱营销型网站设计
  • wordpress在线视频直播湖南正规关键词优化
  • 花木企业网站源码全网推广的方式
  • 网站开发商怎么关闭图片显示站长之家新网址
  • 灯饰如何做网站推广纯手工seo公司
  • 晋中公司做网站seo站长之家
  • 到哪里找人做网站优化seo培训班
  • 深圳网站开发哪家专业搜索到的相关信息
  • 湖北武汉网站制作引擎搜索下载
  • 做网站登录的需求分析seo点击排名工具有用吗