从JSP调用servlet
我是servlet和JSP的新手。我试图从jsp调用记录器servlet。要求是servlet将控制权返回给jsp(在记录事件之后)。servlet需要透明,即根据性能,日志功能可能会关闭 JSP:INCLUDE是唯一的方法吗?还有其他方法吗 谢谢从JSP调用servlet,jsp,servlets,Jsp,Servlets,我是servlet和JSP的新手。我试图从jsp调用记录器servlet。要求是servlet将控制权返回给jsp(在记录事件之后)。servlet需要透明,即根据性能,日志功能可能会关闭 JSP:INCLUDE是唯一的方法吗?还有其他方法吗 谢谢 Winston。您不能直接从JSP调用servlet。但是,您可以发送电子邮件。这将告诉浏览器应该在其他位置查找资源 来自JSP <% String destination ="/jsp/destination.jsp"; r
Winston。您不能直接从JSP调用servlet。但是,您可以发送电子邮件。这将告诉浏览器应该在其他位置查找资源 来自JSP
<%
String destination ="/jsp/destination.jsp";
response.sendRedirect(response.encodeRedirectURL(destination));
%>
如果您的目的是“记录”,则应使用。过滤器就像一个轻量级servlet,它不生成自己的内容,而是插入请求处理过程,并在正常页面处理之外执行
强烈建议以模式方式使用Servlet/JSP。它将应用程序的数据、用户界面和控制逻辑分离为三个独立的实体。请求由Servlet(控制器)处理,该Servlet将初始化满足用户请求所需的任何JavaBean(模型)。然后,Servlet(控制器)将包含JavaBeans(模型)的请求转发到只包含HTML和JSTL语法的JSP(视图)页面。这个记录器Servlet会做什么?-1表示“不能”,scriptlet方法+1表示过滤器,这是正确的方法。:(我只是想指出,从jsp调用servlet不是正确的思考方式。无论如何,-1+1=0:DOne方法的TK是
,正如OP已经提到的那样。另一种(更前端的控制器模式)方法是首先调用servlet而不是jsp,然后执行RequestDispatcher#forward()
到doGet()方法中的JSP。但毕竟,OP肯定需要一个过滤器(这里:)是的,这似乎是一个过滤器的工作
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String destination ="/jsp/destination.jsp";
response.sendRedirect(response.encodeRedirectURL(destination));
}
}