我是servlets和JSP的新手。我试图从jsp调用logger servlet。要求是servlet将控制权返回给jsp(在记录事件之后)。 servlet需要是透明的,即根据性能可以关闭日志记录功能。
JSP:INCLUDE唯一的出路吗?还有其他方法吗?
谢谢,
温斯顿。
答案 0 :(得分:0)
您不能直接从JSP调用servlet。但是,您可以发送redirect。这将告诉浏览器它应该在另一个位置查找资源。
来自JSP
<%
String destination ="/jsp/destination.jsp";
response.sendRedirect(response.encodeRedirectURL(destination));
%>
来自Serlet
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String destination ="/jsp/destination.jsp";
response.sendRedirect(response.encodeRedirectURL(destination));
}
}
如果您的目的是“记录”,则应使用Filter。 Filter就像一个轻量级的servlet,它不会生成自己的内容,而是插入请求处理过程并执行除了正常的页面处理之外。
强烈建议以MVC模式方式使用Servlet / JSP。它将应用程序的数据,用户界面和控制逻辑分成三个独立的实体。该请求由Servlet(控制器)处理,它将初始化满足用户请求所需的任何JavaBeans(模型)。然后,Servlet(控制器)将包含JavaBeans(模型)的请求转发到仅包含HTML和JSTL语法的JSP(视图)页面。