Java JSP究竟在哪里运行?在客户端还是服务器端?

Java JSP究竟在哪里运行?在客户端还是服务器端?,java,jsp,servlets,Java,Jsp,Servlets,我已经读了@BalusC的精彩答案,但我仍然不清楚: 一方面,当我编写servlet时,我会这样做: String addressPath = "/WEB-INF/results/employee/employeePage.jsp"; RequestDispatcher dispatcher = request.getRequestDispatcher(addressPath); dispatcher.forward(request, respon

我已经读了@BalusC的精彩答案,但我仍然不清楚:

一方面,当我编写servlet时,我会这样做:

        String addressPath = "/WEB-INF/results/employee/employeePage.jsp";
        RequestDispatcher dispatcher = request.getRequestDispatcher(addressPath);
        dispatcher.forward(request, response);
然后,用户在屏幕上看到名为
employeePage.JSP
的JSP页面。这并不意味着JSP在客户端运行


那么JSP是在客户端运行,还是在服务器端运行(JSP=Java服务器页面)

JSP是一种基于servlet的服务器端技术。如果您使用像Tomcat这样的容器,您可以看到从JSP文件生成的servlet。本质上是呼叫
dispatcher.forward(请求、响应)
只是对另一个Servlet的调用。

JSP在服务器端运行,但除了HTML(和CSS)之外,JSP还提供一些JavaScript,然后在客户端运行,这是非常常见的

一个非常简单的例子是一个JSP,它在为访问者提供的网页中包含一些Google Analytics tracker(JavaScript)


注意,我并不是说所有的JavaScript总是在客户端运行:还有服务器端JavaScript。我想说的是JSP通常提供JavaScript,JSP提供的JavaScript在客户端运行。

JSP在运行之前被转换成Java servlet,它处理HTTP请求并生成响应,就像任何servlet一样。然而,JSP技术提供了一种更方便的编写servlet代码的方法。转换在应用程序第一次运行时发生。JSP转换器由URL中的.JSP文件扩展名触发。JSP可以与servlet完全互操作。您可以包含来自servlet的输出或将输出转发给servlet,servlet可以包含来自JSP的输出或将输出转发给JSP。

JSP仅在服务器端运行。 这只是java代码 开发人员可以轻松地用jsp编写代码

jsp最终仅转换为Javaservlet。
当我们使用
dispatcher.forward(请求、响应)时它只会将您重定向到该servlet。

我知道我回答这个问题已经晚了,但它可能会帮助某些人

JSP生命周期包括以下阶段:

1) 汇编

2) 初始化

3) 执行

4) 清理

JSP编译

当浏览器请求JSP时,JSP引擎首先检查是否需要编译页面。如果页面从未编译过,或者自上次编译以来JSP已被修改,则JSP引擎将编译该页面

编译过程包括三个步骤−

1) 解析JSP

2) 将JSP转换为servlet。

3) 编译servlet。


当JSP被转换成servlet时,它必须在服务器端执行以满足请求。

JSP(Java服务器页面)是用于web应用程序表示层的服务器端技术。它不能在客户端运行。
JSP
servlet容器中的
application-service
r上运行,因为它在执行之前被转换为
servlet
。只有一些Javascript在客户端运行吗?我认为整个HTML响应是由客户端的浏览器“运行”(即解析)的(尽管它是在服务器端生成的)。你的意思是说只有Javascript部分是要由浏览器执行的代码,对吗?我猜HTML在这里有点灰色,因为解析和获取可视化输出可以被视为“正在运行”(根据OP问题)。Sunil,你还没有回答这个问题:JSP是在服务器端还是在客户端运行?