首页 > 编程语言 >JSP语法 《Java Web开发从入门到实战》第三章节

JSP语法 《Java Web开发从入门到实战》第三章节

时间:2024-03-21 22:03:02浏览次数:25  
标签:Web Java 标记 JSP 页面 page 属性

目录

一、JSP页面的基本构成

1、普通的HTML标记

2、JSP注释(增强JSP文件的可读性,便于Web项目的更新和维护)

3、Java脚本元素:声明、Java程序片、Java表达式

4、JSP标记:指令标记、动作标记、自定义标记等

二、<% %>和<%! %>的不同之处

1、翻译不同

2、定义不同

3、声明不同


一、JSP页面的基本构成

1、普通的HTML标记

2、JSP注释(增强JSP文件的可读性,便于Web项目的更新和维护)

(1)HTML注释:<!--HTML注释-->,用户通过浏览器查看JSP源文件时能够看到HTML注释。

(2)JSP注释:<%--JSP注释--%>,用户通过浏览器查看JSP源文件时无法看到JSP注释。

3、Java脚本元素:声明、Java程序片、Java表达式

在一个程序片中声明的变量称为JSP页面的局部变量,它们在JSP页面后继的所有程序片以及表达式内部有效。

成员变量在整个JSP页面内都有效。(多个用户共享,任何用户对JSP页面成员变量操作的结果都会影响到其他用户)

(1)Java程序片:在标记符“<%”和“%>”之间插入的Java代码。

        格式:<% Java代码 %>

        特点:①调用JSP页面声明的方法

                   ②操作JSP页面声明的成员变量

                   ③声明局部变量

                   ④操作局部变量

(2)成员变量和方法的声明:

        在标记符“<%!”和“%>”之间声明的变量被称为JSP页面的成员变量,它们可以是Java语言允许的任何数据类型。

        在标记符“<%!”和“%>”之间声明的方法被称为JSP页面的成员方法,该方法在整个JSP页面内有效,但是该方法内定义的变量仅在该方法内有效。

        成员变量被所有客户共享,局部变量被每个客户独享。

        格式:<%! 变量或方法定义 %>

        eg:

        <%!

                int n=0;

                Date date;

        %>

(3)Java表达式:算术表达式、逻辑表达式、条件表达式等

        注意点:①不可以在“<%=”和“%>”之间插入语句,即所输入内容的末尾不能以分号结束

                      ②“<%=”是一个完整的符号,“<%”和“=”之间不能有空格

4、JSP标记:指令标记、动作标记、自定义标记等

(1)JSP指令标记:常见的JSP指令标记有page和include标记

        ①page指令:用来定义整个JSP页面的一些属性和这些属性的值。用户可以用一个page指令指定多个属性的值,也可以使用多个page指令分别为每个属性指定值。

        格式:

        <%@ page 属性1="属性1的值" 属性2="属性2的值" ...%>

或者

        <%@ page 属性1="属性1的值" %>

        <%@ page 属性2="属性2的值" %>

        ...

        <%@ page 属性n="属性n的值" %>

        主要属性:contentType、import、language、pageEncoding等

        属性contentType:JSP页面使用page指令标记只能为contentType属性指定一个值,用来确定响应的MIME类型(text/html、text/plain、application/pdf、application/msword、image/jpeg、image/png、image/gif、application/vnd.ms-powerpoint等)。

        属性import:JSP页面使用page指令标记只能为import属性指定多个值。

        属性language:指定JSP页面使用的脚本语言,目前只取“Java”。

        属性pageEncoding:contentType中的charset是指服务器发送给客户浏览器时所见到的网页内容的编码;pageEncoding是指JSP文件自身存储是所用的编码。

        ②include指令:将JSP文件、HTML网页文件或其他文本文件静态嵌入到当前的JSP网页中。

        格式:<%@include file="文件的url"%>

        静态嵌入:“先包含后处理”,在编译阶段完成对文件的嵌入。

        注意:在使用include指令标记时,需要注意嵌入文件后必须保证新合成的JSP页面符合JSP语法规则,如进行合成的两个页面的contentType属性值相同等。

                   在JSP规范中,如果pageEncoding属性存在,那么JSP页面的字符编码方式就由pageEncoding决定,否则就由contentType属性中的charset决定,如果charset也不存在,JSP页面的字符编码方式就采用默认的ISO-8859-1。

(2)JSP动作标记:include、forward(转发)、param、useBean(作用范围 scope="page/request/session/application")、getProperty、setProperty等。

        ①include动作标记:将JSP文件、HTML网页文件或其他文本文件动态嵌入到当前的JSP网页中,格式:

        <jsp:include page="文件的url">

或者

        <jsp:include page="文件的url">

                子标记

        <jsp:include/>

        动态嵌入:“先处理后包含”,在运行阶段完成对文件的嵌入。与静态嵌入方式相比,动态嵌入的执行速度稍慢,但是灵活性较高。

        注意:使用include动作标记时,两个页面合成时page指令的contentType可以不同。

        ②forward动作标记:从该标记出现处停止当前JSP页面的继续执行,转向执行forward动作标记中page属性值指定的JSP页面。

        格式:

        <jsp: forward page="文件的url"/>

或者

        <jsp: forward page="文件的url">

                子标记

        </jsp: forward>

        ③param动作标记:不能独立使用,但可以作为·include、forward动作标记的子标记来使用,该标记以“名字-值”对的形式为对应页面传递参数。

        格式:

        <jsp:父标记 page="接收参数页面的URL">

                <jsp:param name="参数值" value="参数值"/>

        </jsp:父标记>

        接收参数的页面可以使用内置对象request调用getParameter("参数名")方法获取动作标记param传递过来的参数值。

二、<% %>和<%! %>的不同之处

1、翻译不同

1. <% %>:将<% %>的内容转换为Servlet的服务方法。
2.< %! %>:< %! %>的内容被直接翻译到Servlet类中。

2、定义不同

1. <% %>:<% %>定义局部变量或调用方法,但不能定义方法。
2.< %! %>:<%!局部变量和方法不能仅由%>定义。

3、声明不同

1.<% %>:<% %>不能声明方法、属性、全局变量。
2.< %! %>:<%! %>可以声明方法、属性和全局变量。

标签:Web,Java,标记,JSP,页面,page,属性
From: https://blog.csdn.net/wy_1101/article/details/136858927

相关文章

  • 图论06-飞地的数量(Java)
    6.飞地的数量题目描述给你一个大小为mxn的二进制矩阵grid,其中0表示一个海洋单元格、1表示一个陆地单元格。一次移动是指从一个陆地单元格走到另一个相邻(上、下、左、右)的陆地单元格或跨过grid的边界。返回网格中无法在任意次数的移动中离开网格边界的陆......
  • JSP内置对象笔记整理
    JSP内置对象《JavaWeb开发从入门到实战》第四章内置对象:在JSP页面中不需要声明和实例化,可以直接在Java程序片和Java表达式部分使用的对象。分类·:与Input/Output有关的内置对象与Context有关的内置对象与Servlet有关的对象与Error有关的内置对象与Input/Output有关的......
  • java流程控制语句
    今天是复习学习第四天如果有和我一样复习Java基础或者准备学习Java的可以看看我的这些学习内容也欢迎大佬观看我的文章做出指导对我代码或者觉得我哪里理解不到位希望能给我指导指导非常感谢大家祝大家在计算机行业越来越好!!!下面是我今天复习的内容Java流程控制语句分......
  • 《Java核心技术·卷 II(原书第11版)》PDF
    本书针对Java11进行了修订,涵盖了完整的对高级UI特性、企业编程、网络、安全和Java强大的模块系统等内容的讨论。书中对Java复杂的新特性进行了深入而全面的研究,展示了如何使用它们来构建具有专业品质的应用程序,作者所设计的经过全面完整测试的示例反映了当今的Java风格和*佳实践......
  • 29-2 webshell 管理下
    一、常见的webshell管理工具1)蚁剑(AntSword)它是一款开源的跨平台webShell管理工具,主要面向合法授权的渗透测试安全人员和网站管理员进行常规操作。其核心功能包括Shell代理功能、Shell管理、文件管理、虚拟终端、数据库管理、插件市场和插件开发。下载安装教程:中国蚁剑下......
  • 23种设计模式核心思想及代码实现(Java C++)
    目录代码OOP七大原则策略模式单例模式观察者模式装饰模式抽象工厂模式工厂模式简单工厂模式工厂模式抽象工厂模式三种工厂模式的区别简单工厂模式和策略模式的不同pipeline模式职责链模式代理模式静态代理动态代理......
  • 记一些java里的数据结构
    0.Vector:过期的,被arraylist取代了0.1Stack:也不建议使用1.双向链表LinkedList:由list实现的接口类2.队列Queue:操作为addremoveelement(会报异常)offerpollpeek3.双端队列Deque:就是栈+队列Deque<>deque=newLinkedList()<>;常用操作:(会返回特殊值不会报异常)......
  • SpringbootLogingApplication has been compiled by a more recent version of the Ja
    一、问题描述:        SpringbootLogingApplicationhasbeencompiledbyamorerecentversionoftheJavaRuntime(classfileversion61.0),thisversionoftheJavaRuntimeonlyrecognizesclassfileversionsupto55.0        更新版本的Ja......
  • java基础重新巩固
    publicclassDemo01{publicstaticvoidmain(String[]args){//整数:进制二进制0b十进制八进制0十六进制0xinti=0;inti2=010;//八进制8inti3=0x10;//十六进制16System.out.println(i......
  • Java使用注解@Scheduled开启定时任务
    @Scheduled(cron="[秒][分][小时][日][月][周][年]")说明:多个并列的时间以英文逗号“,”隔开。比如:@Scheduled(cron="053,55161**")上面意思是:1号的下午16:53,16:55执行二次。 @Scheduled(cron="0/10****?")每隔10秒运行一次。 @Scheduled(c......