-1

我有一个 java servlet,它生成 html,其中很少有在 html 中发生变化的变量。我想知道,最好是阅读 html 并插入变量还是将请求分派给 JSP?什么更有效地满足大量请求?

这是 html 读取/插入方式:

FileReader reader = new FileReader("index-template");
CharBuffer buffer = CharBuffer.allocate(16384);
reader.read(buffer);
String index = new String(buffer.array());
index = index.replaceAll("\\{\\{ variable\\}\\}", variable);
resp.setContentType("text/html");
resp.getWriter().write(index);

这是jsp调度:

request.getRequestDispatcher("/thankyou.jsp").forward(request, response);
4

4 回答 4

1

尝试使用模板引擎,例如速度。在那里,您可以使用变量编写 HTML 文件,并让速度进行替换。加载后,Velocity 还会缓存已解析的模板文件。因此,它比在您的代码片段中一次又一次地加载文件要快得多。

于 2013-10-24T14:41:46.200 回答
1

当然,就可读性/可维护性而言,JSP 调度是首选方式。

至于性能,曾经有人过早优化是万恶之源,我想这里也确实如此。

于 2013-10-24T14:39:52.437 回答
0

当向前显示视图时jsp。在转发之前,通过 servlet 在请求中设置适当的属性,使用request.setAttribute(name, value). 在视图中,可以使用 JSP EL 轻松显示请求属性和参数。这将帮助您的应用程序遵守 MVC 原则,将控制器与视图分离。

于 2013-10-24T14:39:42.253 回答
0

嗯,看来你们在那里重新发明了轮子并创建了一个自定义模板引擎(如VelocityFreemarker

除此之外,我不会在这个级别深入讨论这些细节并选择产生更易读代码的路径(更容易维护的那个)。

如果你的 webapp 很慢,它不会因为这些魔法而变慢。您应该专注于架构以使其高效。无论如何,如果您进行了一些压力测试,结果证明这是您问题的根源,您将获得测量结果,告诉您哪个替代方案更好以及哪个因素更好。

我的 2 美分。

于 2013-10-24T14:43:52.817 回答