我有一个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 dispatch:
request.getRequestDispatcher("/thankyou.jsp").forward(request, response);
答案 0 :(得分:1)
当涉及可读性/可维护性时,JSP调度当然是首选方式。
至于表现,someone曾经说过早优化是所有邪恶的根源,我认为这确实就是这种情况。
答案 1 :(得分:1)
尝试使用模板引擎,例如velocity。在那里,您可以使用变量编写HTML文件,并让速度执行替换。一旦加载,Velocity还会缓存已解析的模板文件。因此,它比在代码片段中一次又一次地加载文件要快得多。
答案 2 :(得分:0)
将视图向前显示到jsp
时。在转发之前,使用request.setAttribute(name, value)
通过servlet在请求中设置适当的属性。在视图中,可以使用JSP EL轻松显示请求属性和参数。这将有助于您的应用程序遵循MVC原则,将控制器与视图分开。
答案 3 :(得分:0)
除此之外,我不会在这个级别上详细介绍这些细节,并选择导致代码更易读的路径(更易于维护的代码)。
如果你的网络应用程序很慢,那么因为这种魔法而不会很慢。您应该专注于架构以提高效率。无论如何,如果你做了一些压力测试,结果证明这是你问题的根源,那么你将有测量,告诉你哪个选择更好,哪个更好。
我的2美分。