了解jsp,这一篇就够了.
阅读原文时间:2023年07月14日阅读:1

jsp的执行过程:

1 客户端发出请求。

2 Web容器将JSP转译成Servlet源代码。

3 Web容器将产生的源代码进行编译。

4 Web容器加载编译后的代码并执行。

5 把执行结果响应至客户端。

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

所以说jsp本质就是一个servlet.我们可以查看由jsp转换成的java文件得出.

/*
* Generated by the Jasper component of Apache Tomcat
* Version: Apache Tomcat/8.5.43
* Generated at: 2019-08-12 06:31:53 UTC
* Note: The last modified time of this file was set to
* the last modified time of the source file after
* generation to assist with modification tracking.
*/
package org.apache.jsp;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;

public final class jsp2_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent,
org.apache.jasper.runtime.JspSourceImports {

private static final javax.servlet.jsp.JspFactory _jspxFactory =
javax.servlet.jsp.JspFactory.getDefaultFactory();

private static java.util.Map _jspx_dependants;

private static final java.util.Set _jspx_imports_packages;

private static final java.util.Set _jspx_imports_classes;

static {
_jspx_imports_packages = new java.util.HashSet<>();
_jspx_imports_packages.add("javax.servlet");
_jspx_imports_packages.add("javax.servlet.http");
_jspx_imports_packages.add("javax.servlet.jsp");
_jspx_imports_classes = null;
}

private volatile javax.el.ExpressionFactory _el_expressionfactory;
private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager;

public java.util.Map getDependants() {
return _jspx_dependants;
}

public java.util.Set getPackageImports() {
return _jspx_imports_packages;
}

public java.util.Set getClassImports() {
return _jspx_imports_classes;
}

public javax.el.ExpressionFactory _jsp_getExpressionFactory() {
if (_el_expressionfactory == null) {
synchronized (this) {
if (_el_expressionfactory == null) {
_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
}
}
}
return _el_expressionfactory;
}

public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() {
if (_jsp_instancemanager == null) {
synchronized (this) {
if (_jsp_instancemanager == null) {
_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig());
}
}
}
return _jsp_instancemanager;
}

public void _jspInit() {
}

public void _jspDestroy() {
}

public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
throws java.io.IOException, javax.servlet.ServletException {

final java.lang.String \_jspx\_method = request.getMethod();  
if (!"GET".equals(\_jspx\_method) && !"POST".equals(\_jspx\_method) && !"HEAD".equals(\_jspx\_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) {  
  response.sendError(HttpServletResponse.SC\_METHOD\_NOT\_ALLOWED, "JSPs only permit GET POST or HEAD");  
  return;  
}

final javax.servlet.jsp.PageContext pageContext;  
javax.servlet.http.HttpSession session = null;  
final javax.servlet.ServletContext application;  
final javax.servlet.ServletConfig config;  
javax.servlet.jsp.JspWriter out = null;  
final java.lang.Object page = this;  
javax.servlet.jsp.JspWriter \_jspx\_out = null;  
javax.servlet.jsp.PageContext \_jspx\_page\_context = null;

try {  
  response.setContentType("text/html;charset=UTF-8");  
  pageContext = \_jspxFactory.getPageContext(this, request, response,  
              null, true, 8192, true);  
  \_jspx\_page\_context = pageContext;  
  application = pageContext.getServletContext();  
  config = pageContext.getServletConfig();  
  session = pageContext.getSession();  
  out = pageContext.getOut();  
  \_jspx\_out = out;

  out.write("\\r\\n");  
  out.write("<html>\\r\\n");  
  out.write("<head>\\r\\n");  
  out.write("    <title>Title</title>\\r\\n");  
  out.write("</head>\\r\\n");  
  out.write("<body>\\r\\n");  
  out.write("<p>我是jsp2</p>\\r\\n");  
  out.write("</body>\\r\\n");  
  out.write("</html>\\r\\n");  
} catch (java.lang.Throwable t) {  
  if (!(t instanceof javax.servlet.jsp.SkipPageException)){  
    out = \_jspx\_out;  
    if (out != null && out.getBufferSize() != 0)  
      try {  
        if (response.isCommitted()) {  
          out.flush();  
        } else {  
          out.clearBuffer();  
        }  
      } catch (java.io.IOException e) {}  
    if (\_jspx\_page\_context != null) \_jspx\_page\_context.handlePageException(t);  
    else throw new ServletException(t);  
  }  
} finally {  
  \_jspxFactory.releasePageContext(\_jspx\_page\_context);  
}  

}
}

其中那个眼熟的_jspService就是处理请求的方法.

首先说一点,开发中极少极少用到的东西.在jsp中写java代码..

//在这里你可以像在class中写代码一样.当然你写的代码都是在service中
<% int i = 1 + 3; System.out.println(i); %>

//向页面输出 一个变量
<%= i%>

//声明一个 成员变量(注意是成员变量)
<%! int x = 20; %>

下面来看jsp翻译成java的代码(只截取和以上有关系的)

这个是我们声明的成员变量

这两个是我们写的java代码和向页面输出的变量

提到jsp不得不说的就是:三大指令,四大域,九大内置对象(包含4大域)乍一听很多很吓人.其实,使用过servlet的同学,这些东西其实很多都了解.(当然现在也没人用原生的servlet,如果不是为了面试.我想我也不会在看这个.)

首先啥是内置对象,字面意思就是你不用new就可以使用的对象.那么我们要用对象怎么就不用new了呢???原因很简单,我们写的jsp其实就是servlet,而代码都在service中,所以这9个内置对象肯定也是在service

中已经声明的.往上翻service的源码.仔细查看.或者你可以直接看下图

下面我们来一个一个介绍

1 out: servlet中有  response.getWriter().print();方法向页面输入内容,jsp中用out来输出.完整的jsp页面转换成html其实就是用来out.write()方法将数据和html标签全部变成字符串输出到客户端

2 config:当我们使用servlet时,在web.xml配置一个servlet和servletMapping时还可以配置servlet的初始化参数.在servlet中可以使用this.getInitParameter("xx");来获取servlet初始化参数,在jsp中我们也可以使用config来获取初始化参数.

aaarticlea/jpeg;base64,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ImLztvnfITrvXvNudFdIuuAldBdHd3vc/Hnn03S1AiKGziEiIiIiNm9bxJA5N0xOujs8oeBFd4TOO+9q02vI2oAo53x2ukoB0aJFi4LtgYiIiIiIzUMCIk1XISBiuBwiIiIiYvO35QVELWDIHC9UQERERERsGba4gEi6N8P5AUzoBQp550sLnkqV54YQEREREVuOLTIgki6wcfpD4Mqdr7GB0fTp0833338fbANERERERGx+NuuAqCWpYGjhwoXB7UdERERExOYpAVGFnDdvXnDbERERERGx+UpAVAHnzJkT3G5ERERERGzeEhCV6cyZM4PbjIiIiIiIzV8CojLkJQqIiIiIiC1bAqIy5J+vIiIiIiK2bAmIGqm2KbStiIiIiIjYciQgaoSzZ88ObiciIiIiIrYsmyQgQkREREREbI62GTx4sEFEbE0uXbo0mI6IiC1Xzu1YLdvMmLPQICK2JvWjGUpHRMSWK+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5HaslAREitjr50UREbH1ybsdqSUCEiK1OfjQREVufnNuxWhIQIWKrkx9NRMTWJ+d2rJYERIjY6uRHExGx9cm5Hatlm8GDBxtExNakfjRD6YiI2HLl3I7Vss3XX39tiuobb7xhDy5ERERERCymbUaNGmWK6hNPPBFsFERERERELIYERIFGQURERETEYkhAFGgUREREREQshgREgUZBRERERMRiSEAUaBRERERERCyGBESBRkFERERExGJIQBRoFERERERELIYERIFGQURERETEYkhAFGgUREREREQshgREgUZBRERERMRiSEAUaBRERERERCyGmQFR7yv3N/tf2TuYtz78avDXZuAXXwbz5Odr8wZ/PSSYF5eACBERERGx2La4gOjzQV+YPq+/FQyKlKY8zRPPC0lAhIiIiIhYbFtcQCQ/H1Qb+PhBUanBkCQgQkREREQstm2u7D0yGCw40wKikSP7m45n7G8OOOAA6/77X2l6j6xf3siRvc2V+9fOs//+Z5iOHa8MzleqflCkYXJJd43SJCBCRERERCy2bbKCk6SAyAVDfl7/jmfUC3ZcMHRGx/71l6lAQCRdUNSYYEgSECEiIiIiFts2Z+iuTf9GBES9G97pcQGQu+sUnCeQ1ljdnSECIkREREREbIxt7DC2RgRE9m7QGR1N/3oBUe0dIHdHKDhPhQIi98yQHTIXeKYojwREiIiIiIjFtkXeIfKDIZfWmKCIgAgRERERsdg2+g6RC34aPEPk3RFq+AxRtEwZAZF77XbobXKlBkUERIiIiIiIxTbXHSL3Frm6t8lFQY8LcOLp/vIj+3c0Z0Tz2ECozDtE+sesenYolCcVDGmeUF5cAiJERERExGKb+X+IKm3ouaL1JQERIiIiImKxrWpAZO8gpQyhW98SECEiIiIiFtuq3yHyh8zJ5hIMSQIiRERERMRi2+RD5pqTBESIiIiIiMWWgCjQKIiIiIiIWAwJiAKNgoiIiIiIxZCAKNAoiIiIiIhYDAmIAo2CiIiIiIjFkIAo0CiIiIiIiFgMCYgCjYKIiIiIiMWwzddff22KKgERIiIiImKxbaOgABERERERsYi2MQAAAAAAAAWFgAgAAAAAAAoLAREAAAAAABQWAiIAAAAAACgsbbp3724QERERERGLaJsvhk01iIiIiIiIRZSACBERERERCysBESIiIiIiFlYCIkRERERELKwERIiIiIiIWFgJiBARERERsbASECEiIiIiYmElIEJERERExMJKQISIiIiIiIWVgAgREREREQtrSQHRy9ccYNrsc7N5eeiUYD4iIiIiImJLkoAIERERERELqw2IBg19xpzepo05/aF1gc6gh843bdqcb7pEwU+Xs9qsnfY865m6eREREREREVui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AACFhYAIAAAAAAAKCwERAAAAAAAUFgIiAAAAAAAoLAREAAAAAABQWAiIAAAAAACgsBAQAQAAAABAYal6QPTcc8+ZG2+80ey3335Ryvqlc+fO5vTTT4+m0rnvvvvMmWeeGU1Vl1NPPTX61DimTp1qjjvuOLP55pube+65J0oFAAAAAIA0miQguv32202bNs3jZpSCs7x1ufXWW5us3l27do0+NY6zzz7bvPjii2b58uXmoIMOilIBAAAAACCNJotSmktAtGbNmpLq0lzqncUWW2xhVq5cGU0BAAAAAEAeChcQieYUEK1evdrMnz/fvP7661FK42gpgRsAAAAAQHOiIr3od9991xxzzDFms802MwceeKAZMGBAlLOOpA675j3qqKPMxhtvbHbbbTfz7LPPRjm1fPvtt+aUU06xz8boLsihhx5qLr744ig3O//XX381Dz/8sNljjz3MTjvtZJ5++ul6ddEdo8cff9zsvffeZscdd7TP3/z0009Rbm29Z86caU477TSz5ZZbmv/7v/8zixYtsnl77bVXg+2Kp+nZnj/+8Y9m6623tvU766yzbP3csDYNddt2222D7aN17r777mbx4sXmkksuMZtuuqnZc889Tb9+/aI5jDnyyCPtsr5x9NyU1rHNNtuYjh072m0GAAAAAIAKBERvv/227bR/8skn5scff7TBg6bjhDrqYt999zWjRo2yd0q++eYbG9j4KEh65513bNk//PCDGT58uLnpppui3Ox8BUAnnXSSmTFjhg0s7r333np1UQB24YUXmjlz5tjl9YyR/zyP5r3lllvMlClTzNKlS83VV19t/v3vf9u8JUuWNNguzeOnHX744aZv375mxYoVVn3WCyZ+/vnnaA5jA7BQ+3z++ec2/Y477jDDhg0zq1atstuqwC1OaHnx0ksvmRNPPNF+L7NmzbLB4wsvvBDlAgAAAAAUm3AvugR0h2LgwIHRVC26KxInqcMufvnlFzN06FDTu3fvBvOdcMIJ5pFHHjHTp0+PUuqTlX/wwQfbgMvHX8chhxxih6w5li1bZu9yOTTvvHnzoiljgwo/4Attl5+m4McFRApo3n///ZICRqWrfRxJz0AlLX/YYYeZMWPGRFPGjB071t5FAwAAAACAtf3o6G+j0TA53Z3JIqnDXlNTY+8S6fXWt912W4P5VLbuaJxzzjl2vk6dOtngwpGVr2FmCkR8/HUoX9O+G220UZTbsN66k7XJJptEU+Ht8tMUQOmul4bkaTkNlRs0aFCUu45QOSKrfEfS8vHt12d9ZwAAAAAAsLYfHf1tNPvvv7+ZNGlSNFVLfFokddiPOOIIM3jw4GgqeT6hQKdXr17m+OOPj1LqE8pXkKThYg69ic1fhwKUBQsWRFMN0bz+HZpp06bZbXbE8xUwxbfht7/9rR2ul0bSdofS86YJ3SHTcD/H5MmT7V0xAAAAAABY24+O/jaabt262bs76nTr7oOGz3Xo0CHKrUXD0NRh1/M1cdq2bWtfjKB5NJxsgw02MN27d49yjTn33HPNyJEjbdkKNj744AOz6667RrnZ+XqhgF5IoGFxCkr0z1ZVFz2fIx577DH7kgMNudPyGlLWvn17myd0h0UvXdD/99HQuYsuusjcf//9Ua4xO++8s+nTp49dVneD1B4q/7PPPovmMOaaa66xL3VQXa+77jrTs2fPuhczCJUdah/Xbsp3uHn9AMul+fM5tK7zzjvPzJ0719b//PPPt0EjAAAAAABUICDSCwEUZOjtZ3oLm4IPv2Pv3rrm1LSPHvrfbrvt7MsRPv74Y9thVwfecfrpp5tjjz3WvqFNQ870Nrsvv/wyys3OV6Cif7CqdRxwwAH2WSW9lED1FLq706NHD3snSUPJFLTMnj3b5ok777zTvglPQZaW0wsOVKbjzTfftM8EKXA644wzbGDol6+ATMGXnv3RSxjGjx9vnn/++bq7NCeffHK99tG0w6X5z/z4b5UTCj7dtFSA6aPtu+uuu+xb7rQNCtj05j0AAAAAAKhAQATp7LLLLubJJ5+0d4T0Zjn9fe655+zLFgAAAAAAYP1CQFRl9Ia7Cy64wP4foA033ND+1V2wCRMmRHMAAAAAAMD6goAIAAAAAAAKCwERAAAAAAAUFgIiAAAAAAAoLAREAAAAAABQWAiIAAAAAACgsBAQAQAAAABAYSEgAgAAAACAwkJABAAAAAAAhYWACAAAAAAACgsBEQAAAAAAFBYCIgAAAAAAKCwERCXSuXNnc/rpp0dTAAAAAADQkiEgKpEbb7zRtGlT22z669u2bVtz2mmnmeHDh9t8AAAAAABo3hAQlciaNWvqAqKlS5faz/r766+/mu+++87cc889Zv/997f5AAAAAADQvCEgagQuIBL+Z/HDDz+YrbfeOpoCAAAAAIDmTNkBkQIC+fe//9289tprddPi4osvNnvssYcZPXq0Ofjgg822225rrr76arN8+XKb79BzOcrbZpttTMeOHe1dGOHKGj9+vP273Xbb2fQNN9ywbh2a9/HHHzd777232XHHHe0dmp9++snmPfjgg+aYY44xW221lZ3u3r173bA2R9ryQnd+Hn74YbsdO+20k3n66afr1i38z3PnzjXt27c3L7/8cpRizMYbb2zneeutt8w777xjP/vLAAAAAADA+qPsnvmSJUvMCSecYD7//HMbXNx+++12CJn49NNPbee/Q4cOZvbs2Wbx4sXmiiuuMLfeeqvNFy+99JI58cQTzcyZM82sWbPMKaecYl544QWb9+abb5qrrrrKfu7du7e599577WcFHMOGDbOfn332WXPhhReaOXPm2Lszesana9euNm/SpEmmf//+tg5aj+ZVMNanTx+bL9KWFwqATjrpJDNjxgxbf9XBD2hcgCMVeL399ttRTi1qE5XvuP76623gBAAAAAAA65+K3KrQszPHHXec6dGjh/3so0BBd1kcCnr22muvaMqYww47zIwZMyaaMmbs2LHm0EMPtZ9Xrlxp7/AIBSaHHHKIDTCuvfZamyaUNn/+/GjKmGXLlpkDDzwwmqpFdRg0aFA0VZ+s5XVna9SoUdFULSrP4T7//PPPZvLkyeaCCy4wzz33nE1zdOrUya7jl19+Md26dYtSAQAAAABgfVORgEg89thj5vLLL4+m1uEHD2LVqlVm0003jaaM/aw0hz5vttlm0ZQx5557rh0yd/TRR9tnc3SHRnecHFpe6/DdaKONotxa4nXwyVo+Xj/hl+d/Frr7s88++0RTtYwbN862z8CBA82QIUOiVAAAAAAAWN9UJCDScDMNSVOw8sEHH0SptcQDBt0NOuigg6Kp2jswU6ZMiaaMvcuiuzYOPd+juy6///3vzW233WbL++abb6JcY8tasGBBNBUmXgefrOX33XdfO5zPobtWaQHRokWLzJZbbhlNreOyyy4zXbp0sXe4AAAAAACgeVB2QKTnavTcjTr6ehmBhs75AY4CBgU1enZn2rRp9nkcDa1z9OzZ05x33nn2zsq8efPM+eefb3r16hXlGjNhwgRbRr9+/cyAAQPM9ttvX28Inu686OUN06dPN6tXr7ZD7vRiA4fWq+XjL3JwZC2vFz5ccskldsibtvW+++6z5emZKVe2htlp+zUcUPPKOHoxg17YAAAAAAAAzYeyAyIFBFLD2p566qm6aYc+f/jhh2bXXXe1b2nT8zR63sah52ruuusuOxxO8+gZGz/gESeffLJdRi9rcC9ZcGh5BVi6k6Ohdhpipxc4CN1ZcvWR7tkkn7TlhYIkvQRCb7g74IADzNChQ+3b6BT0+GVLbZ/eoqcXTcTRW+ZqamqiKQAAAAAAaA6UHRCl4e6g6M5KUZk6dap9e50CJQAAAAAAaF5UNSDabbfd6u6eFBU9I6WXLMTfVAcAAAAAAOuf4kYqAAAAAABQeAiIAAAAAACgsBAQAQAAAABAYSkrICr680EAAAAAANCyISACAAAAAIDCQkAEAAAAAACFhYAIAAAAAAAKCwERAAAAAAAUFgIiAAAAAAAoLAREAAAAAABQWAiIAAAAAACgsBAQAQAAAABAYSEgAgAAAACAwkJABAAAAAAAhYWACAAAAAAACgsBEQAAAAAAFBYCIgAAAAAAKCwERAAAAAAAUFgIiAAAAAAAoLAQEAEAAAAAQGEhIAIAAAAAgMJCQAQAAAAAAIWFgAgAAAAAAAoLAREAAAAAABQWAiIAAAAAACgsBEQAAAAAAFBYCIgAAAAAAKCwEM0AAAAAAEBhISACAAAAAIDCQkAEAAAAAACFhYAIAAAAAAAKCwERAAAAAAAUFgIiAAAAAAAoLAREAAAAAABQWAiIAAAAAACgsBAQAQAAAABAYSEgAgAAAACAwkJABAAAAAAAhYWACAAAAAAACgsBEQAAAAAAFBYCIgAAAAAAKCwERAAAAAAAUFgIiAAAAAAAoKAY8/8BFrUSp2ERXwUAAAAASUVORK5CYII=" alt="" />

3 page:其实就是  this

4 response:对这个和servlet中的response一样.

5 exception:这个得说说.如果要使用这个内置对象,改页面必须是声明为exception页面.否则没有.下边说 jsp指令会说的怎么声明exception页面

6 request:域对象之一跟servlet中的request一样(生命周期一次请求中存在)

7 session:域对象之一和servlet中的一样(一次会话中存在,不关闭浏览器)

8 application:域对象之一对应servlet中的servletContext.(生命周期诞于服务器启动,死于服务器关闭.)

9 pageContext:最后一个内置对象,最后一个域对象.这个域对象的作用范围是在当前页面.啥是当前页面,就是在A页面设置一个setAttribute("key","value");在B页面getAttribute("key");你取不到,只能在他自己页面用,看起来并没有什么卵用.但是,存在即合理.这个域对象的作用远远不止这些.首先他可以获取其他8个内置对象.

屌不屌,如果你记不住9个内置对象那就只记住这一个就行了.然后你在背8个方法.啊哈哈哈.

其次它还能一个对象操作四个域对象中的内容.

<% //四个域中分别设置值 pageContext.setAttribute("pkey", "pvalue"); request.setAttribute("rkey", "rvalue"); session.setAttribute("skey", "svalue"); application.setAttribute("akey", "avalue"); //用一个对象取四个域中得到值 pageContext.getAttribute("pkey", 1); pageContext.getAttribute("rkey", 1); pageContext.getAttribute("rkey", 1); pageContext.getAttribute("rkey", 1); //查询指定key,查找顺序是 pageContext->request->session->application找到哪里有就返回哪个域的 pageContext.findAttribute("rkey"); //删除域对象中的值,都删!!!哪个域里有删哪个!!! pageContext.removeAttribute("rkey"); %>

3大指令

1 page(一下常用配置)

<%@ page contentType=``"text/html; charset=UTF-8" %>指定文件编码和相应给客户端的编码

<%@ page import``=``"java.util.List" %>导包

<%@ page errorPage="xxx.jsp"%>指定当前页面出异常跳转到哪个页面

<%@ page isErrorPage=``"true" %>设置当前页为errorPage注意!只有设置了这个指令,该jsp页面才会有exception内置对象.

2 include

<%@ include file="xxx.jsp"%>静态包含.在页面任意地方使用该指令,会将该指令指向的file包含到该页面.

<%@ page contentType="text/html;charset=UTF-8" language="java" %> Title 我是jsp3 <%@ include file="jsp4.jsp" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> Title 我是jsp4 ![](https://article.cdnof.com/2307/e903133c-6768-4017-a8a7-0d766a10db52.png) 注意此种静态包含必然不会生成jsp4的Java文件和class文件 ![](https://article.cdnof.com/2307/b89c7f88-f11c-464a-880e-600abf583490.png) ![](https://article.cdnof.com/2307/0fb7a77a-868b-4452-b958-0ec38882e3b3.png) 实则是编译了一个java文件,将jsp4的内容完整的克隆了下来. 说到这里还有一个与之相反的动态包含 使用方式是 <%@ page contentType="text/html;charset=UTF-8" language="java" %> Title 我是jsp3 页面展示的结果是相同的.但是执行流程确实不一样. ![](https://article.cdnof.com/2307/e4326a71-eb6f-457a-b322-80e6af181e3a.png) 可以看出这时jsp4的文件也生成了 ![](https://article.cdnof.com/2307/22e5c81e-f211-4697-8062-c96079040874.png) 而在jsp3中则是调用了方法,查询jsp4的内容. 如此便是动态包含和静态包含的区别. 3 taglib指令 <%@ taglib url="标签库URL" prefix="在jsp中使用的命名空间"%>

此指令主要用于导入三方标签库.关于标签库的使用.在下一篇中介绍

以上就是 jsp的简单介绍.