我是servlets和JSP的新手。我正在尝试从jsp调用记录器servlet。要求servlet将控制权返回给jsp(在记录事件之后)。servlet需要是透明的,即根据性能,日志记录功能可能会被关闭。
JSP:INCLUDE是唯一的出路吗?还有其他方法吗?
谢谢,
温斯顿。
发布于 2010-09-08 02:28:41
不能直接从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。过滤器就像一个轻量级的servlet,它不生成自己的内容,而是插入到请求处理过程中,并在正常的页面处理之外执行。
强烈建议以MVC模式的方式使用Servlet/JSP。它将应用程序的数据、用户界面和控制逻辑分成三个独立的实体。请求由Servlet (控制器)处理,它将初始化满足用户请求所需的任何JavaBeans (模型)。然后,Servlet (控制器)将包含JavaBeans (模型)的请求转发到只包含HTML JSTL语法的JSP (视图)页面。
https://stackoverflow.com/questions/3661361
复制相似问题