JSP运行到底在哪里?在客户端或服务器端?

时间:2014-01-22 22:53:12

标签: java jsp servlets

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

一方面,当我写一个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服务器页面)?

5 个答案:

答案 0 :(得分:9)

JSP在服务器端运行,但除了HTML(和CSS)之外,JSP还可以在客户端运行JavaScript,这是很常见的。

一个非常简单的示例是JSP,其中包括一些向访问者提供的网页中的Google Analytics跟踪器(使用JavaScript)。

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

答案 1 :(得分:5)

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

答案 2 :(得分:3)

我知道我迟到了回答这个问题,但可能会帮助别人。

JSP生命周期涉及以下阶段:

1)编译

2)初始化

3)执行

4)清理

JSP编译

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

编译过程包括三个步骤 -

1)解析JSP。

2)将JSP转换为servlet。

3)编译servlet。

当JSP转换为servlet时,必须在服务器端执行它以提供请求。

答案 3 :(得分:2)

JSP是一种基于Servlets构建的服务器端技术。如果您使用像Tomcat这样的容器,您可以看到从JSP文件生成的Servlet。本质上,调用dispatcher.forward(request, response);只是对另一个Servlet的调用。

答案 4 :(得分:1)

jSP仅在服务器端运行。 它只是java代码 开发人员可以轻松地在jsp中创建代码。

jsp最终只转换为java servlet。 当我们使用dispatcher.forward(request, response);时,它只会将您重定向到该servlet。

相关问题