Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSP调用servlet_Jsp_Servlets - Fatal编程技术网

从JSP调用servlet

从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

我是servlet和JSP的新手。我试图从jsp调用记录器servlet。要求是servlet将控制权返回给jsp(在记录事件之后)。servlet需要透明,即根据性能,日志功能可能会关闭

JSP:INCLUDE是唯一的方法吗?还有其他方法吗

谢谢


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));

 }
}