SSM4.3【Spring:SpringMVC获取请求数据[续]】
自定义类型转换器
1 package com.haifei.converter; 2 3 import org.springframework.core.convert.converter.Converter; 4 5 import java.text.ParseException; 6 import java.text.SimpleDateFormat; 7 import java.util.Date; 8 9 /** 10 * 自定义日期类型转换器 11 */ 12 public class DateConverter implements Converter<String, Date> { //String转为指定的Date类型表示形式 13 @Override 14 public Date convert(String dateStr) { 15 //将日期字符串转换为日期对象并返回 16 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //此处指定类型 17 Date date = null; 18 try { 19 date = sdf.parse(dateStr); 20 } catch (ParseException e) { 21 e.printStackTrace(); 22 } 23 return date; 24 } 25 }
1 spring-mvc.xml 2 3 4 <!--声明类型转换器--> 5 <!--这里配置完,需要在mvc的注解驱动里再配置一下--> 6 <bean id="myConversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"> 7 <property name="converters"> 8 <list> 9 <!--自定义的日期类型转换器--> 10 <bean class="com.haifei.converter.DateConverter"></bean> 11 </list> 12 </property> 13 </bean> 14 15 <!--配置mvc的注解驱动--> 16 <mvc:annotation-driven conversion-service="myConversionService"/>
1 /** 2 * 自定义类型转换器-解决日期表示形式不一致问题 3 */ 4 @RequestMapping("/save18") 5 @ResponseBody 6 public void save18(Date date){ 7 System.out.println(date); 8 /* 9 1、编写DateConverter类和配置之前: 10 (1) 11 访问:http://localhost:8080/ssm4/user/save18?date=2021/07/17 12 控制台:Sat Jul 17 00:00:00 CST 2021 13 (2) 14 访问:http://localhost:8080/ssm4/user/save18?date=2021-07-17 15 页面:HTTP Status 400 - 16 控制台:java.lang.IllegalArgumentException 17 Failed to convert value of type 'java.lang.String' to required type 'java.util.Date' 18 19 2、编写DateConverter类和配置之后: 20 (1) 21 访问:http://localhost:8080/ssm4/user/save18?date=2021/07/17 22 控制台:java.text.ParseException: Unparseable date: "2021/07/17" 23 null 24 (2) 25 访问:http://localhost:8080/ssm4/user/save18?date=2021-07-17 26 控制台:Sat Jul 17 00:00:00 CST 2021 27 */ 28 }
获取Servlet相关API
1 /** 2 * 获得Servlet相关API 3 * @param request 4 * @param response 5 * @param session 6 */ 7 @RequestMapping("/save19") 8 @ResponseBody 9 public void save19(HttpServletRequest request, HttpServletResponse response, HttpSession session){ 10 System.out.println(request); 11 System.out.println(response); 12 System.out.println(session); 13 /* 14 http://localhost:8080/ssm4/user/save19 15 org.apache.catalina.connector.RequestFacade@74d97876 16 org.apache.catalina.connector.ResponseFacade@435d8789 17 org.apache.catalina.session.StandardSessionFacade@7f3dc55e 18 */ 19 }
获取请求头
1 /** 2 * 获取请求头,以User-Agent为例 3 * @param userAgent 4 */ 5 @RequestMapping("/save20") 6 @ResponseBody 7 // public void save20(){} //F12查看Network抓包 8 public void save20(@RequestHeader(value = "User-Agent", required = false) String userAgent){ 9 System.out.println(userAgent); 10 /* 11 http://localhost:8080/ssm4/user/save20 12 Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Mobile Safari/537.36 13 */ 14 } 15 16 /*@RequestMapping("/save21") 17 @ResponseBody 18 public void save21(@RequestHeader(value = "Cookie", required = false) String cookie){ 19 System.out.println(cookie); //获取请求头Cookie的值 20 //http://localhost:8080/ssm4/user/save21 21 //JSESSIONID=4FD28E933ED260980E10510564C786E0; Pycharm-bef28cc3=6a7e18fa-9ae4-419f-9f06-22bb003caf2b; _ga=GA1.1.1972130967.1563781280; _pk_id.100001.1fff=dafa65dff09610aa.1563781279.2.1568286400.1563781584.; __utma=111872281.1972130967.1563781280.1563781280.1568286412.2; Idea-d3ad9769=02eef562-1b85-4098-a324-4ed6e79f0a1f 22 }*/ 23 24 /** 25 * 获取请求头Cookie中的指定值,以JSESSIONID为例 26 * @param jsessionId 27 */ 28 @RequestMapping("/save21") 29 @ResponseBody 30 public void save21(@CookieValue(value = "JSESSIONID") String jsessionId){ 31 System.out.println(jsessionId); //4FD28E933ED260980E10510564C786E0 32 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!