Servlet进阶(三)JSP的静态引入和动态引入

版权声明:程序猴jwang版权所有 https://blog.csdn.net/qq_21046965/article/details/84452470

前言

      本章学习JSP静态引入和动态引入的相关知识

方法

1.概念

我们通过前面的知识已经基本掌握了一个JSP页面的基本组成。

问题:多个JSP文件存在相同的数据,这个时候就很难受了。如果需求一改,我们要将这些JSP统统改一遍,十分繁琐。

解决:使用JSP的引入功能

2.JSP的静态引入

语法:<%@include file="JSP文件路径"%>

实例:在login.jsp中引入first.jsp

login.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>用户登录</title>
  </head>
  <body>
  <%@include file="first.jsp"%>
  <form action="/login.do" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    <input type="submit" value="登录">
  </form>
  </body>
</html>

first.jsp:

<%@ page pageEncoding="utf-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    我是引入的页面
</body>
</html>

访问login.jsp,我们观察效果:

作用在于将引入的页面内容连同主页面内容一起转化servlet进行展示

2.JSP动态引入

语法:<jsp:include page="JSP文件路径"></jsp:include>

实例:在login.jsp中引入first.jsp

login.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>用户登录</title>
  </head>
  <body>
  <jsp:include page="first.jsp"></jsp:include>
  <form action="/login.do" method="post">
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
    <input type="submit" value="登录">
  </form>
  </body>
</html>

访问login.jsp,我们观察效果:

我们发现,它和静态引入实现了同样的功能,那么一个问题就出现了,静态引入和动态引入有什么区别?

原理:

静态引入是将要引入的文件合并入主文件一起编译形成一个servlet 

动态引入同时将俩个jsp转译为两个servlet,主文件转译的servlet调用要引入的文件转译的servlet

通过上面原理的理解,我们知道:

静态引入先合并后处理Java代码

动态引入是先处理各自的Java代码,再进行合并,也就是先处理后合并

换句话说:动态引入可以声明同名Java变量,静态引入则不行!

猜你喜欢

转载自blog.csdn.net/qq_21046965/article/details/84452470
今日推荐