Java 从http请求参数构造实例的最佳方法
在我的项目中,我有:Java 从http请求参数构造实例的最佳方法,java,jakarta-ee,servlets,constructor,http-request-parameters,Java,Jakarta Ee,Servlets,Constructor,Http Request Parameters,在我的项目中,我有: 一个servlet,用于处理以用户配置文件信息作为参数的http请求,即(userName=“Bob”、password=“ugaBaga”、address=“blabla”…) 表示用户信息的用户类。getters+setters:getName(),setName(字符串用户名) 我的问题是,有没有一种简单的方法可以从httpRequest参数创建一个新的用户实例 比如: User newUser=createUserFromParams(new User(),http
提前谢谢 有一个HttpServletRequest.getParameterMap,但是它提供了一个
映射,正如您可以得到的那样“?a=1&a=2”。所以像小海狸这样的东西是不行的
但是,您可以使用java反射创建自己的实用程序类,或者将请求参数转换为Map
,并使用标准的bean实用程序()。java生态系统中有几个MVC框架可以处理这个特定问题—将请求参数绑定到特定的类—这是我最喜欢的一个Spring MVC。该框架的好处之一是:
要将参数绑定到的命令/表单对象:作为bean属性或
字段,可自定义类型转换,具体取决于@InitBinder
方法和/或HandlerAdapter配置
所以使用Spring框架就不需要手工制作绑定:Spring为您做这件事。所以,如果你不相信MVC,你应该试试MVC框架,不管你是不是Spring
PS:如果您仍然不想使用MVC框架,您可以使用HttpServletRequest.getParameterMap()
和旧的Apache CommonsBeanUtils.populate()
(中的更多信息)为您创建绑定 是的,有。例如,当您使用签名User createUserFromParams(User-User,Map-parameters)
定义helper函数时!旁注…永远不要在http请求中发送密码…@ZackMacomber那么它将如何到达服务器?可能你的意思是“永远不要通过GET请求发送密码”?因为它应该通过SSL(https)发送…我应该说是未加密的http请求