我正在尝试创建一个网站,一种搜索引擎。 在后端,我有Java servlet处理请求和返回响应。
我不确定我应该在前端使用什么,这样我就可以完全(或尽可能地)去耦合后端和前端。此外,这些(或其他)中的哪一个具有最多的能力。 几个选项是:
请帮帮我;我该如何处理这个想法?
答案 0 :(得分:2)
servlet API没有提供与PHP无缝集成的视图技术。你需要在PHP中使用curl
调用对servlet的HTTP请求,并将servlet作为web服务提供,并使用JS / Ajax在生成的PHP输出中从中获取结果。这可能会不必要地导致过于笨拙和昂贵。
使用基于Java的视图或模板技术。 JSP是一个完美的套装,因为它与Servlets携手并进。您只需将搜索结果存储为请求属性,将请求转发给JSP,然后在JSP中使用taglibs / EL来呈现它。
如果您想要更多的模板功能,例如为HTML输出或某些电子邮件消息重用相同的模板,或者出于任何目的,您希望以编程方式生成输出而无需HTTP请求,那么Freemarker是更好的选择。
答案 1 :(得分:1)
JSP是servlet,因此如果没有正确完成开发并且确保JSP仅作为视图保留,则可以轻松地进行开发。
PHP必须被彻底解耦,因为它是一种单独的语言。
Freemarker模板 - 我从未使用过此产品,所以我不推荐任何东西。
另一种选择是为您的视图使用JavaScript / HTML。 Servlet可以提供数据,JavaScript可以在客户端运行并创建视图。
当然,您的任何选项都将起作用,取决于您所经历的技术以及您的时间范围。如果您的时间很短并且已经熟悉Java和servlet,那么您只需使用JSP来呈现前端视图即可。虽然我倾向于使用Jax-RS将servlet后端作为JSON提供给JavaScript前端视图。
答案 2 :(得分:1)
在Java中创建动态网页的常用方法是在服务器上安装servlet,创建发送到浏览器的html。 JSP和Freemarker模板等技术被设计为servlet的增强功能,可以更轻松地创建html。 JSP页面将在部署时编译为纯servlet。
如果你想将完全创建html的技术与你创建的servlet分离,那么我会选择静态html和ajax。您可以这样创建系统:
使用javascript创建静态html页面。使用像jquery这样的javascript库。
创建servlet,使它们接受参数并使用json格式的数据进行响应。
在您的html页面中编写Javascript,将查询发送到servlet并根据响应修改html代码。