我已经阅读了@ 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服务器页面)?
答案 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。