JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】(三)

简介: JSP全名为Java Server Pages,java服务器页面。JSP是一种基于文本的程序,其特点就是HTML和Java代码共同存在!

JSP行为

JSP行为(JSP Actions)是一组JSP内置的标签,只书写少量的标记代码就能够使用JSP提供丰富的功能,JSP行为是对常用的JSP功能的抽象和封装

为什么我不把它直接称为JSP标签呢?我把这些JSP内置的标签称之为JSP行为,能够和JSTL标签区分开来。当然了,你也可以把它称之为JSP标签,你不要搞混就行了。我个人喜欢把这些JSP内置标签称之为JSP行为。

include行为

  • 上面已经提及到了,include指令是静态包含,include行为是动态包含。其实include行为就是封装了request.getRequestDispatcher(String url).include(request,response)
  • include行为语法是这个样子的

<jsp:include page=""/>

  • 我们先来使用一下把,在1.jsp页面中也将页头和页尾包含进来
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>包含页头和页尾进来</title>
    </head>
    <body>
        <jsp:include page="head.jsp"/>
        <jsp:include page="foot.jsp"/>
    </body>
    </html>

访问1.jsp页面看一下效果:24.jpg

使用jsp行为来包含文件,jsp源文件是这样子的:

25.jpg

  • jsp行为包含文件就是先编译被包含的页面,再将页面的结果写入到包含的页面中(1.jsp)
  • 当然了,现在有静态包含和动态包含,使用哪一个更好呢?答案是:动态包含
  • 动态包含可以向被包含的页面传递参数(用处不大),并且是分别处理包含页面的(将被包含页面编译后得出的结果再写进包含页面)【如果有相同名称的参数,使用静态包含就会报错!】
  • 模拟一下场景吧,现在我的头页面有个名为s的字符串变量
 <%@ page contentType="text/html;charset=UTF-8" language="java"   %>
    <html>
        <head>
            <title>页头</title>
        </head>
        <body>
        <%
            String s = "zhongfucheng";
        %>
        我是页头呀
        <br>
        <br>
        <br>
        </body>
    </html>

我的页尾也有个名为s的字符串变量

  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>页尾</title>
    </head>
    <body>
    <%
        String s = "zhongfucheng";
    %>
    我是页尾呀
    </body>
    </html>

现在我使用静态包含看看会发生什么,出现异常了。26.jpg

出现异常的原因很简单,就是同一个文件中有两个相同的变量s27.jpg

使用动态包含就可以避免这种情况

28.jpg29.jpg

param行为

  • 当使用jsp:include和jsp:forward行为引入或将请求转发给其它资源时,可以使用jsp:param行为向这个资源传递参数。

forward行为

  • 在讲解request对象的时候,我们使用request.getRequestDispatcher(String url).forward(request,response)进行跳转。其实forward行为就是对其封装
  • 我们来看一下forward的语法:

<jsp:forward page=""/>

  • 好的,我们来使用一下吧。访问1.jsp页面就跳转到head.jsp页面中
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>访问1.jsp就跳转到head.jsp</title>
    </head>
    <body>
    <jsp:forward page="head.jsp"/>
    </body>
    </html>

看一下效果

30.jpg

  • 如果我要传递参数,就要在forward行为嵌套param行为
  • 在跳转到head.jsp时传入参数username值为zhongfucheng
  <jsp:forward page="head.jsp">
        <jsp:param name="username" value="zhongfucheng"/>
    </jsp:forward>

在head.jsp页面中获取到传递过来的参数

 <%
            String ss = request.getParameter("username");
        %>
        获取到的参数是:
        <%=ss%>

效果如下图所示31.jpg

directive行为

  • directive的中文意思就是指令该行为就是替代指令<%@%>的语法的
  • 相当于<%@include file="" %>
  • jsp:directive.page/ 相当于<%@page %>
  • jsp:directive.taglib/ 相当于<%@taglib %>
  • 我们来试一下能不能用的
 <jsp:directive.include file="head.jsp"></jsp:directive.include>
    <jsp:directive.include file="foot.jsp"></jsp:directive.include>

看下效果,正常可以包含页面:32.jpg

  • 使用该指令可以让JSP页面更加美观
  • 使用scriptlet行为<jsp:scriptlet>替代<%%>是同样一个道理

javaBean行为

  • JSP还提供了操作javaBean对象的行为在这里就不详细说明了,后面会讲到的!现在记住JSP提供了javaBean行为来操作简单类即可!
  • <jsp:useBean id=""/>
  • <jsp:setProperty name="" property=""/>
  • <jsp:getProperty name="" property=""/>

如果文章有错的地方欢迎指正,大家互相交流。


目录
相关文章
|
5天前
|
JavaScript 前端开发 Java
JSP基本语法
这篇文章详细介绍了JSP的基本语法,包括脚本标识、注释、指令标识和动作标识的使用方法和语法格式。
JSP基本语法
|
6天前
|
Java
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
该文章展示了如何创建一个JSP页面,使用Scriptlet编写包含除零操作的计算代码,并配置page指令将错误信息重定向至另一个JSP页面进行显示。
编写一个jsp页面,利用Scriptlet编写一段计算代码,要求用零作为除数,并使用page指令将错误信息显示在另外一个jsp页面,产生的错误信息为“错误,不能用0做除数”
|
6天前
|
Java
JSP指令
该文章解释了JSP中的指令,包括page指令、include指令和taglib指令的语法和用途,以及如何使用它们来设置JSP页面的属性和引入标签库。
JSP指令
|
2月前
|
缓存 小程序 前端开发
Java服务器端技术探秘:Servlet与JSP的核心原理
【6月更文挑战第23天】Java Web开发中的Servlet和JSP详解:Servlet是服务器端的Java小程序,处理HTTP请求并响应。生命周期含初始化、服务和销毁。创建Servlet示例代码展示了`doGet()`方法的覆盖。JSP则侧重视图,动态HTML生成,通过JSP脚本元素、声明和表达式嵌入Java代码。Servlet常作为控制器,JSP处理视图,遵循MVC模式。优化策略涉及缓存、分页和安全措施。这些技术是Java服务器端开发的基础。
38 9
|
2月前
|
搜索推荐 Java 数据库连接
探索Java Web开发:Servlet与JSP的协同工作原理
【6月更文挑战第23天】Java Web开发中,Servlet和JSP协同打造动态网站。Servlet是服务器端的Java程序,处理HTTP请求并执行复杂逻辑;JSP则结合HTML和Java,生成动态内容。Servlet通过`doGet()`等方法响应请求,JSP在首次请求时编译成Servlet。两者常搭配使用,Servlet处理业务,JSP专注展示,通过`RequestDispatcher`转发实现数据渲染。这种组合是Java Web应用的基础,即使新技术涌现,其价值仍然重要,为开发者提供了强大的工具集。
35 7
|
2月前
|
前端开发 Java
杨老师课堂之jsp基础语法知识理论基础介绍
杨老师课堂之jsp基础语法知识理论基础介绍
12 0
|
3月前
|
XML 缓存 Java
JSP 教程 之 JSP 指令 1
JSP指令用于设置页面属性,如编码和脚本语言。包括3种类型:`@page`定义页面属性,`@include`包含其他文件,`@taglib`引入标签库。`&lt;%@ page ... %&gt;`用于指定脚本语言、错误处理页面等,可有多个属性。XML格式为`&lt;jsp:directive.page attribute=&quot;value&quot; /&gt;`。
29 1
|
3月前
|
Java
JSP 教程 之 JSP 语法 15
JSP教程简述基础语法,包括支持的Java运算符,如一元、可乘性、可加性等,遵循特定结合性。同时,JSP有布尔、整型、浮点型、字符串和Null字面量。
27 1
|
3月前
|
Java
JSP 教程 之 JSP 语法 14
`JSP语法基础涵盖Java运算符:从后缀()[] .到逻辑&&和||,包括一元++、-,算术* / %,比较&gt; &lt;,位操作符,赋值= +=等,以及条件?:,遵循特定结合性。`
25 1
|
3月前
|
XML Java API
JSP 教程 之 JSP 指令 4
**JSP指令设置页面属性,如编码和语言。语法:&lt;%@ directive attribute=&quot;value&quot; %&gt;。Taglib指令用于引入自定义标签库,格式:&lt;%@ taglib uri=&quot;uri&quot; prefix=&quot;prefix&quot; %&gt;,XML语法: `&lt;jsp:directive.taglib uri=&quot;uri&quot; prefix=&quot;prefix&quot; /&gt;`,uri定义库位置,prefix定义标签前缀。**
12 0