一、什么是JSP?

  JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
  JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。

二、JSP原理

2.1、Web服务器是如何调用并执行一个jsp页面的?

  浏览器向服务器发请求,不管访问的是什么资源,其实都是在访问Servlet,所以当访问一个jsp页面时,其实也是在访问一个Servlet,服务器在执行jsp的时候,首先把jsp翻译成一个Servlet,所以我们访问jsp时,其实不是在访问jsp,而是在访问jsp翻译过后的那个Servlet,例如下面的代码:

index.jsp

 1 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
2 <%
3 String path = request.getContextPath();
4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
5 %>
6
7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
8 <html>
9 <head>
10 <base href="<%=basePath%>">
11
12 <title>First Jsp</title>
13
14 </head>
15
16 <body>
17 <%
18 out.print("Hello Jsp");
19 %>
20 </body>
21 </html>

  当我们通过浏览器访问index.jsp时,服务器首先将index.jsp翻译成一个index_jsp.class,在Tomcat服务器的work\Catalina\localhost\项目名\org\apache\jsp目录下可以看到index_jsp.class的源代码文件index_jsp.java,index_jsp.java的代码如下:

 1 package org.apache.jsp;
2
3 import javax.servlet.*;
4 import javax.servlet.http.*;
5 import javax.servlet.jsp.*;
6 import java.util.*;
7
8 public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
9 implements org.apache.jasper.runtime.JspSourceDependent {
10
11 private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();
12
13 private static java.util.List _jspx_dependants;
14
15 private javax.el.ExpressionFactory _el_expressionfactory;
16 private org.apache.AnnotationProcessor _jsp_annotationprocessor;
17
18 public Object getDependants() {
19 return _jspx_dependants;
20 }
21
22 public void _jspInit() {
23 _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
24 _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
25 }
26
27 public void _jspDestroy() {
28 }
29
30 public void _jspService(HttpServletRequest request, HttpServletResponse response)
31 throws java.io.IOException, ServletException {
32
33 PageContext pageContext = null;
34 HttpSession session = null;
35 ServletContext application = null;
36 ServletConfig config = null;
37 JspWriter out = null;
38 Object page = this;
39 JspWriter _jspx_out = null;
40 PageContext _jspx_page_context = null;
41
42
43 try {
44 response.setContentType("text/html;charset=UTF-8");
45 pageContext = _jspxFactory.getPageContext(this, request, response,
46 null, true, 8192, true);
47 _jspx_page_context = pageContext;
48 application = pageContext.getServletContext();
49 config = pageContext.getServletConfig();
50 session = pageContext.getSession();
51 out = pageContext.getOut();
52 _jspx_out = out;
53
54 out.write('\r');
55 out.write('\n');
56
57 String path = request.getContextPath();
58 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
59
60 out.write("\r\n");
61 out.write("\r\n");
62 out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");
63 out.write("<html>\r\n");
64 out.write(" <head>\r\n");
65 out.write(" <base href=\"");
66 out.print(basePath);
67 out.write("\">\r\n");
68 out.write(" \r\n");
69 out.write(" <title>First Jsp</title>\r\n");
70 out.write("\t\r\n");
71 out.write(" </head>\r\n");
72 out.write(" \r\n");
73 out.write(" <body>\r\n");
74 out.write(" ");
75
76 out.print("Hello Jsp");
77
78 out.write("\r\n");
79 out.write(" </body>\r\n");
80 out.write("</html>\r\n");
81 } catch (Throwable t) {
82 if (!(t instanceof SkipPageException)){
83 out = _jspx_out;
84 if (out != null && out.getBufferSize() != 0)
85 try { out.clearBuffer(); } catch (java.io.IOException e) {}
86 if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
87 }
88 } finally {
89 _jspxFactory.releasePageContext(_jspx_page_context);
90 }
91 }
92 }

  我们可以看到,index_jsp这个类是继承 org.apache.jasper.runtime.HttpJspBase这个类的,通过查看Tomcat服务器的源代码,可以知道在apache-tomcat-6.0.20-src\java\org\apache\jasper\runtime目录下存HttpJspBase这个类的源代码文件,如下图所示:

  aaarticlea/png;base64,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" alt="" />

我们可以看看HttpJsBase这个类的源代码,如下所示:

 1 /*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18 package org.apache.jasper.runtime;
19
20 import java.io.IOException;
21
22 import javax.servlet.ServletConfig;
23 import javax.servlet.ServletException;
24 import javax.servlet.http.HttpServlet;
25 import javax.servlet.http.HttpServletRequest;
26 import javax.servlet.http.HttpServletResponse;
27 import javax.servlet.jsp.HttpJspPage;
28 import javax.servlet.jsp.JspFactory;
29
30 import org.apache.jasper.compiler.Localizer;
31
32 /**
33 * This is the super class of all JSP-generated servlets.
34 *
35 * @author Anil K. Vijendran
36 */
37 public abstract class HttpJspBase
38 extends HttpServlet
39 implements HttpJspPage
40
41
42 {
43
44 protected HttpJspBase() {
45 }
46
47 public final void init(ServletConfig config)
48 throws ServletException
49 {
50 super.init(config);
51 jspInit();
52 _jspInit();
53 }
54
55 public String getServletInfo() {
56 return Localizer.getMessage("jsp.engine.info");
57 }
58
59 public final void destroy() {
60 jspDestroy();
61 _jspDestroy();
62 }
63
64 /**
65 * Entry point into service.
66 */
67 public final void service(HttpServletRequest request, HttpServletResponse response)
68 throws ServletException, IOException
69 {
70 _jspService(request, response);
71 }
72
73 public void jspInit() {
74 }
75
76 public void _jspInit() {
77 }
78
79 public void jspDestroy() {
80 }
81
82 protected void _jspDestroy() {
83 }
84
85 public abstract void _jspService(HttpServletRequest request,
86 HttpServletResponse response)
87 throws ServletException, IOException;
88 }

  HttpJspBase类是继承HttpServlet的,所以HttpJspBase类是一个Servlet,而index_jsp又是继承HttpJspBase类的,所以index_jsp类也是一个Servlet,所以当浏览器访问服务器上的index.jsp页面时,其实就是在访问index_jsp这个Servlet,index_jsp这个Servlet使用_jspService这个方法处理请求。

2.2、Jsp页面中的html排版标签是如何被发送到客户端的?

浏览器接收到的这些数据

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <base href="http://localhost:8080/JavaWeb_Jsp_Study_20140603/">
5
6 <title>First Jsp</title>
7
8 </head>
9
10 <body>
11 Hello Jsp
12 </body>
13 </html>

都是在_jspService方法中使用如下的代码输出给浏览器的:

 1 out.write('\r');
2 out.write('\n');
3
4 String path = request.getContextPath();
5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6
7 out.write("\r\n");
8 out.write("\r\n");
9 out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");
10 out.write("<html>\r\n");
11 out.write(" <head>\r\n");
12 out.write(" <base href=\"");
13 out.print(basePath);
14 out.write("\">\r\n");
15 out.write(" \r\n");
16 out.write(" <title>First Jsp</title>\r\n");
17 out.write("\t\r\n");
18 out.write(" </head>\r\n");
19 out.write(" \r\n");
20 out.write(" <body>\r\n");
21 out.write(" ");
22
23 out.print("Hello Jsp");
24
25 out.write("\r\n");
26 out.write(" </body>\r\n");
27 out.write("</html>\r\n");

  在jsp中编写的java代码和html代码都会被翻译到_jspService方法中去,在jsp中编写的java代码会原封不动地翻译成java代码,如<%out.print("Hello Jsp");%>直接翻译成out.print("Hello Jsp");,而HTML代码则会翻译成使用out.write("<html标签>\r\n");的形式输出到浏览器。在jsp页面中编写的html排版标签都是以out.write("<html标签>\r\n");的形式输出到浏览器,浏览器拿到html代码后才能够解析执行html代码。

2.3、Jsp页面中的java代码服务器是如何执行的?

  在jsp中编写的java代码会被翻译到_jspService方法中去,当执行_jspService方法处理请求时,就会执行在jsp编写的java代码了,所以Jsp页面中的java代码服务器是通过调用_jspService方法处理请求时执行的。

2.4、Web服务器在调用jsp时,会给jsp提供一些什么java对象?

  查看_jspService方法可以看到,Web服务器在调用jsp时,会给Jsp提供如下的8个java对象

1 PageContext pageContext;
2 HttpSession session;
3 ServletContext application;
4 ServletConfig config;
5 JspWriter out;
6 Object page = this;
7 HttpServletRequest request,
8 HttpServletResponse response

  其中page对象,request和response已经完成了实例化,而其它5个没有实例化的对象通过下面的方式实例化

1 pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true);
2 application = pageContext.getServletContext();
3 config = pageContext.getServletConfig();
4 session = pageContext.getSession();
5 out = pageContext.getOut();

这8个java对象在Jsp页面中是可以直接使用的,如下所示:

 1 <%
2 session.setAttribute("name", "session对象");//使用session对象,设置session对象的属性
3 out.print(session.getAttribute("name")+"<br/>");//获取session对象的属性
4 pageContext.setAttribute("name", "pageContext对象");//使用pageContext对象,设置pageContext对象的属性
5 out.print(pageContext.getAttribute("name")+"<br/>");//获取pageContext对象的属性
6 application.setAttribute("name", "application对象");//使用application对象,设置application对象的属性
7 out.print(application.getAttribute("name")+"<br/>");//获取application对象的属性
8 out.print("Hello Jsp"+"<br/>");//使用out对象
9 out.print("服务器调用index.jsp页面时翻译成的类的名字是:"+page.getClass()+"<br/>");//使用page对象
10 out.print("处理请求的Servlet的名字是:"+config.getServletName()+"<br/>");//使用config对象
11 out.print(response.getContentType()+"<br/>");//使用response对象
12 out.print(request.getContextPath()+"<br/>");//使用request对象
13 %>

运行结果如下:

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA2IAAAFQCAIAAABS4FpKAAAgAElEQVR4nOzdeZwb9Z0n/NLua/94dl77zO4zs7Pz7JKEcBsIMCFDBhISbxiw8W237RjCME8ODJkwkwEMtA04xjc4JjhAxs1hd2O3u9vudrda6m51676lUukulY5SXaoqSaX7arX6kP38UaWru31AmCyTkV7vl16lX/2qSi2/JH38/dVPBXSdGTz2/ievH/r1P738+t/99Lkbblpxw8133nDznV+55a6v3HLXV2658yu33PmVm++8YRkrbrh5xQ03rfhfN60Qlm9e0dzhq7fc9dVb7/rqrXd97bZvXMvdX7v17q/eejffvwnfePfXbrtb6NZi8X5uvP0bN95+T6trHvozuPH2e2680vP/4o6y3M6X/3uFp/QFu7dmmbVf593Bu/emO+69acW9N6249+YV9918530333nfLXf+1S13/tUtdwluveubfxjCce/8q5tX3LfUTfxTbWtra2tra7uqnTt3dnZ2vvPOOx9//HF/fz/w9nsfd+47+osXd99w84qbb7/7vZOn8tNz+fIVTC8yW5drkl/GXGF5s3VCz9Kym1/T8vtf9ql+BqVFz6f1Ty59Tln+vtisskhmWYVKptC6IJhtKMymC7PpQuVKUl+02p5n042nMZcpzWVKc9kvTuZa0m1tbW3/dlzzM+1fW3Z6/vPJXUV5sfxnUaibubqFRYqt5uarP/7pMwtf9O299z/4Ynf4L//0xT/Jz3370apH5haq//Jxz2133XvTHfc8//zzR44cOXnyJLDnwLF/eKHzz/7if/7uo24qUTQHuCkXO+WKyt0xuTs2xXNFW7FTLnbKyU46mSkHM+lkJh30pIOecjBTDmbKychdrMLFKlxRhTum9MRUdd7FlN6Y0htVeqNKT1ThZhVuRl6jcLMKN6twRxUeVuGJKj0xnqJFtGWVN67wxpVNFN54c395nbsuKndH5a5mrJz/AxsW/fnRSSdbJ3MwMgczIWB543ambszOSCFaCtESGy210RIbLbHRo7YIT2yLiMGGYQvV7KKAHDKTQ2Zy0EQOmshBMzloIi/wzBS/cN5EnTdSA0ZqwEj2G8h+A9nH05Pn9ESvTnBWi5/V4me0+BkNflZLnKnTCAufaolPNcQZDfGphvhUg/eo8e46FdajwrpVWLcS61FhPSqs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" alt="" />

2.5、Jsp最佳实践

  Jsp最佳实践就是jsp技术在开发中该怎么去用。

  不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

2.6、Tomcat服务器的执行流程

  

第一次执行:

  1. 客户端通过电脑连接服务器,因为是请求是动态的,所以所有的请求交给WEB容器来处理
  2. 在容器中找到需要执行的*.jsp文件
  3. 之后*.jsp文件通过转换变为*.java文件
  4. *.java文件经过编译后,形成*.class文件
  5. 最终服务器要执行形成的*.class文件

第二次执行:

  1. 因为已经存在了*.class文件,所以不在需要转换和编译的过程

修改后执行:

1.源文件已经被修改过了,所以需要重新转换,重新编译。

javaweb基础(14)_jsp的原理的更多相关文章

  1. javaweb基础(24)_jsp一般的标签开发

    一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属 ...

  2. javaweb基础(23)_jsp自定义标签

    一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...

  3. javaweb基础(17)_jsp九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  4. javaweb基础(27)_jsp标签库实例

    一.开发标签库 1.1.开发防盗链标签 1.编写标签处理器类:RefererTag.java 1 package me.gacl.web.simpletag; 2 3 import java.io.I ...

  5. javaweb基础(26)_jsp标签库开发二

    一.JspFragment类介绍 javax.servlet.jsp.tagext.JspFragment类是在JSP2.0中定义的,它的实例对象代表JSP页面中的一段符合JSP语法规范的JSP片段, ...

  6. javaweb基础(25)_jsp标签实例一

    一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...

  7. javaweb基础(19)_jsp标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  8. javaweb基础(18)_jsp属性范围

    所谓的属性范围就是一个属性设置之后,可以经过多少个其他页面后仍然可以访问的保存范围. 一.JSP属性范围 JSP中提供了四种属性范围,四种属性范围分别指以下四种: 当前页:一个属性只能在一个页面中取得 ...

  9. javaweb基础(16)_jsp指令

    一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...

随机推荐

  1. Mac下通过homebrew安装maven

    1.安装Homebrew 将以下命令粘贴至终端 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebr ...

  2. 五分钟搞定 Linux 文档全部知识,就看这篇文章

    作者:无痴迷,不成功 来源:见文末 写在前面 我们都知道Linux是一个支持多用户.多任务的系统,这也是它最优秀的特性,即可能同时有很多人都在系统上进行工作,所以千万不要强制关机,同时,为了保护每个人 ...

  3. RPC00

    https://mp.weixin.qq.com/s?__biz=MjM5ODI5Njc2MA==&mid=2655824821&idx=1&sn=50fa59165aedc8 ...

  4. MPlayer 常用操作和快捷键列表

    MPlayer,一款强大的老牌开源播放器,非常适合命令行重度用户和极简主义者.很多时候它是作为其他著名播放器的后端存在的,直接使用基于命令行的本身对于很多新手来说就一头雾水了.比如播放视频的时候,窗口 ...

  5. Jmeter4.0----录制脚本(4)

    1.前言 Jmeter录制脚本有两种方式.1.通过第三方工具录制比如:Badboy,然后转化为jmeter可用的脚本:2.使用jmeter本身自带的录制脚本功能. 对于测试小白来说可用先使用jmete ...

  6. 使用Zeppelin时出现at org.apache.zeppelin.interpreter.thrift.RemoteInterpreterService$Client.recv_getFormType(RemoteInterpreterService.java:288)错误的解决办法(图文详解)

    不多说,直接上干货! 问题详解 org.apache.thrift.TApplicationException: Internal error processing getFormType at or ...

  7. 常见的JedisConnectionException 异常

    最近在使用redis出现以下的异常: 1.redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExcept ...

  8. Python使用selenium进行爬虫(一)

    JAVA爬虫框架很多,类似JSOUP,WEBLOGIC之类的爬虫框架都十分好用,个人认为爬虫的大致思路就是: 1.挑选需求爬的URL地址,将其放入需求网络爬虫的队列,也可以把爬到的符合一定需求的地址放 ...

  9. JSTORM中IRichBolt与IBasicBolt的区别

  10. 1g免费空间永久使用

    云邦互联免费空间(免备案,无广告) [1G免费全能空间,免备案,无广告] 1G全能空间 + 100M数据库(Mysql 5.5 / SQL Server 2005) 支持的脚本:ASP.PHP(5.2 ...