这是我的Java web应用程序的合理方法吗?

这是我的Java web应用程序的合理方法吗?,java,jakarta-ee,servlets,architecture,Java,Jakarta Ee,Servlets,Architecture,只是想知道是否有更好的方法来构建我正在创建的web应用程序?我不打算展示很多代码,我更感兴趣的是以下最佳实践: Index.html包含一个静态表单 用户填写表单,POST请求由Javaservlet处理 servlet包含3种方法: doPost(HttpRequest, HttpResponse) doGet(HttpRequest,HttpResponse) processRequest(映射) doPost()构造一个hashmap,并以key:value格式将表单中的所有变量分配给

只是想知道是否有更好的方法来构建我正在创建的web应用程序?我不打算展示很多代码,我更感兴趣的是以下最佳实践:

  • Index.html
    包含一个静态表单
  • 用户填写表单,POST请求由Javaservlet处理
  • servlet包含3种方法:

    • doPost(HttpRequest,
      HttpResponse)
    • doGet(HttpRequest,HttpResponse)
    • processRequest(映射)
  • doPost()
    构造一个hashmap,并以
    key:value
    格式将表单中的所有变量分配给它。然后调用方法
    processRequest(Map-Map)

  • processRequest(Map Map)
    有一个功能:使用Map变量创建类
    formParser
    的新实例:即
    formParser parser=newformparser(Map)
  • formParser
    具有构造函数和方法:

    • 构造函数初始化一个新的HashMap,该HashMap克隆原始的HashMap和一个新的LinkedList,LinkedList用于存储值并使用map参数调用该方法

      Map<String, String> paramMap = new HashMap<String, String>(map);
      List<String> paramList = getParams(paramMap);
      
      Map paramMap=新的HashMap(Map);
      List paramList=getParams(paramMap);
      
    • 然后,方法
      public LinkedList getParams(Map-paramMap)
      检查映射中的所有键:值对,只取那些没有
      null
      值的键:值对

  • 然后,我使用有效的key:value对将某些XML片段写入预先存在的XML框架,并将其发送到外部REST-API。我还没有写这段代码


  • 编辑:我应该补充一点,我是Java Web编程新手,这就是为什么我只想验证我的程序方法的有效性,而不是代码本身。这将在稍后进行。

    我不知道你所说的“效率”到底是什么意思,但如果你说的是性能,我看不到在你描述的步骤中有任何疯狂的行为,我想这就足够了


    使用最简单、最常用的设计,如果出现问题,您可以提高性能。在我的经验中,Web应用程序中99.999%的性能问题来自于做疯狂的事情(即不寻常的、复杂的方法)。

    < P>因为你是新的Web编程人员,所以你不应该考虑性能问题。
    只需关注工作代码。

    我认为不创建LinkedList可以稍微改进步骤6。如果我理解正确,LinkedList用于删除空值。这可以通过迭代映射的键、检索它们的值并从映射中删除任何具有空值的键来实现

    Map map = new HashMap<String, String>();
    map.put("name1","somevalue");
    map.put("name2",null);
    
    for(String s : map.keySet()){ 
        String value = map.get(s);
            if ( s == null){
                map.remove(s);
            }
    }
    
    Map Map=newhashmap();
    map.put(“name1”、“somevalue”);
    map.put(“name2”,空);
    对于(字符串s:map.keySet()){
    字符串值=map.get(s);
    如果(s==null){
    地图。删除(s);
    }
    }
    
    我们可以查看您的代码吗?显然,步骤7可以更有效;因为您甚至还没有编写代码。@ElliottFrisch我还不关心第7步。我想确保我到目前为止所做的是一个好的方法,仅此而已。您几乎有我的代码在那里,没有什么可添加的,也许您可以从客户端移出“null”参数(使用一些JavaScript)。所以你不需要在Java端做这些事情。@sk2212我已经在考虑这个替代方案了。我打算用JavaScript创建一个动态表单,这样用户只能看到基于先前选择的表单字段。这可能是一个更好的方法效率不重要。如果您是Java web编程新手,只需让它工作起来,以后再担心效率。有一百万个好的web框架(例如Spring)。即使你想自己写,你也可以向他们学习。谢谢,这正是我想要的答案。我想确保在编程时正确有效地进行编程。