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

在我的项目中,我有:

  • 一个servlet,用于处理以用户配置文件信息作为参数的http请求,即(userName=“Bob”、password=“ugaBaga”、address=“blabla”…)

  • 表示用户信息的用户类。getters+setters:getName(),setName(字符串用户名)

  • 我的问题是,有没有一种简单的方法可以从httpRequest参数创建一个新的用户实例

    比如:

    User newUser=createUserFromParams(new User(),httpRequestParameters)

    (无需为我的30个字段中的每个字段写入:user.setName(parameters.getParameter(“用户名”))

    p、 我不是真的发送密码,我想不出一个字段名。 密码由sms发送;)


    提前谢谢

    有一个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 Commons
    BeanUtils.populate()
    (中的更多信息)为您创建绑定

    是的,有。例如,当您使用签名
    User createUserFromParams(User-User,Map-parameters)
    定义helper函数时!旁注…永远不要在http请求中发送密码…@ZackMacomber那么它将如何到达服务器?可能你的意思是“永远不要通过GET请求发送密码”?因为它应该通过SSL(https)发送…我应该说是未加密的http请求