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     }
复制代码

 

posted @   yub4by  阅读(57)  评论(0编辑  收藏  举报
编辑推荐:
· 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 让容器管理更轻松!
点击右上角即可分享
微信分享提示