JSP语法(一)

2023-05-16

  • JSP模板元素

JSP页面中的HTML内容称之为JSP模板元素

JSP模板元素定义了网页的基本骨架,即定义了页面的结构和外观

  • JSP脚本表达式

JSP脚本表达式用于将程序数据输出到客户端的语法:<%= 变量或表达式 %>

举例:当前时间:<%= new java.util.Date() %>

JSP引擎在翻译脚本表达式时,会将程序数据转为字符串,然后在相应位置用out.print(...)将数据输给客户端

JSP脚本表达式中的变量或表达式后面不能有分号(;)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'begin.jsp' starting page</title> 
  </head>
  <body>
<font color="red">
当前时间是:
<%
Date date = new Date();
String time = date.toLocaleString();
%>
<%= time %>  <!-- EL表达式 -->
</font>
  </body>

</html>

  • JSP脚本片段

JSP脚本片段(scriptlet)用于在JSP页面中编写多行java代码,语法:

    <%

        多行代码

    %>

注意:JSP脚本片段中只能出现java代码,不能出现其他模板元素,JSP引擎在翻译JSP页面时,会将JSP脚本片段中的代码原封不动的放到servlet的_jspService方法中

JSP脚本片段中的代码必须严格遵守java语法,例如,每条执行语句后面都需要分号(;)结束

在一个JSP页面中可以有多个脚本片段,在脚本片段之间可以嵌入文本、HTML标记或其他JSP元素

<%

Date date = new Date();

String time = date.toLocaleString();

%>

<p>JSP语法  <!--嵌入文本、HTML标记或其他JSP元素 -->

<%

Date dates = date;

String times= date.toLocaleString();

%>

多个脚本片段中的代码之间可以进行相互访问,犹如所有的代码放到一对<%%>之中的情况

单个脚本片段中的java语句可以是不完整的,但是,多个脚本片段组合后的结果必须是完整的java语句

<%
for(int i=0;i<5;i++){
%>
<p>测试片段完整
<%
}

 %>

  • JSP声明

JSP页面中编写的所有代码,默认会翻译到servlet的service方法中,而JSP声明中的java代码会被翻译到_jspService方法的外面。

<!%

java代码

%>

所以,JSP声明可用于定义JSP页面转换成的servlet程序的静态代码块、成员变量和方法

多个静态代码块,变量和方法可以定义在一个JSP声明中,也可以分别定义在多个JSP声明中

JSP隐式对象的作用范围仅限于servlet的_jspService方法,所以在JSP声明中不能使用这些隐式对象 

  • JSP注释

<%-- jsp注释 -->

<!-- html xml 注释 --> //虽然页面不显示 但是内容会打给浏览器 不推荐使用

jsp引擎在将JSP页面翻译成servlet程序时,会忽略JSP页面中被注释的内容

  • JSP指令

它是为JSP引擎而设计的,他们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。JSP2.0中共定义了三个指令

page指令

Include指令

taglib指令

JSP指令的基本语法格式

<%@ 指令 属性名=“值”%>

举例:<%@ page contentType="text/html; charset=gb2312"%>

如果一个指令有多个属性,这多个属性可以写一个指令中,也可以分开写。

  • page指令

page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,他的作用都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。  

  • page指令解决JSP中文乱码
  • JSP程序存在有与servlet程序相同的中文乱码问题

输出响应中文时出现的中文乱码问题

读取浏览器传递的参数信息时出现的中文乱码问题

  • JSP引擎将JSP页面翻译成servlet源文件时也可能导致中文乱码问题

JSP引擎将JSP源文件翻译成servlet源码文件时默认使用UTF-8编码,而JSP开发人员可以采用各种字符编码来编写JSP源文件,因此,翻译过程,需要进行字符编码转换

如果JSP文件中没有说明它采用的字符编码,JSP引擎默认使用ISO8859-1字符编码

  • 如何解决翻译过程中的乱码问题

通过page指令的contentType属性说明JSP源文件的字符编码

page指令的pageEncoding属性说明JSP源文件的字符集编码

通常只需要在page指令中加 pageEncoding="编码方式"

例如:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

  • include指令(静态包含)

1.用来包含页头页脚

2.<% @include file="/public/head.jsp" %> 静态包含 只会生成一个servlet源文件,被包含的合入该页面 编译时包含

3.request.getRequestDispatcher("/public/head.jsp").include(request,response); 动态包含,被包含JSP会自己生成响应的servlet,运行时生成,影响性能 推荐使用静态包含


自学笔记,多有不足!!!



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP语法(一) 的相关文章

随机推荐

  • Redis主从环境搭建

    首先先搭建一个Redis xff1a 搭建方法 xff1a Linux环境安装redis 1 新建一个目录 xff0c 按照上述链接中的方法再次搭建一个redis 2 搭建完后 xff0c 修改从节点的redis conf文件 2 1 修改
  • Redis集群环境搭建

    一 下载redis xff08 此处我下载的是5 0 3版本 xff09 下载地址 xff1a http download redis io releases Linux命令下载 xff1a wget http download redis
  • Jvisualvm使用及添加Visual GC组件

    只要装了jdk xff0c 就会自带这个工具 xff0c 路径位置如下 xff1a JVisualvm添加Visual GC插件 动态观察各个年代GC情况 访问地址 xff1a https visualvm github io plugin
  • Spring源码编译Java: 找不到符号 InstrumentationSavingAgent

    报错如下 xff1a 解决 xff1a 将spring context gradle文件的 下面这一行 br optional project 34 spring instrument 34 br 修改为 br compile projec
  • RabbitMQ学习(六)——消息确认机制(Confirm模式)

    在上一篇文章中我们讲解了RabbitMQ中的AMQP事务来保证消息发送到Broker端 xff0c 同时我们可以在事务之间发送多条消息 xff08 即在channel txSelect 和channel txCommit 之间发送多条消息
  • zookeeper初识

    一 节点类型 persistent 持久节点 persistent sequential 持久序号节点 ephemeral 临时节点 ephemeral sequential 临时序号节点 1 persistent 持久节点 默认创建的节点
  • xmlns:dubbo=“http://dubbo.apache.org/schema/dubbo“报错

    请先看看你有没有加dubbo的maven依赖 xff0c 官网在做这个demo的时候并没有说要加maven依赖 xff0c 所以会xml中会报红 lt beans xmlns xsi 61 34 http www w3 org 2001 X
  • tomcat 8源码环境编译

    源码下载 下载地址 xff1a https tomcat apache org download 80 cgi 配置 1 解压下载好的源码包 apache tomcat 8 5 57 src zip 2 解压好后 xff0c 在解压后的目录
  • servlet配置文件解析

    1 配置 lt servlet gt xff08 以下代码均是web xml中的 xff09 lt servlet gt lt servlet name gt FirstServlet lt servlet name gt lt servl
  • 线程基础之—线程的创建

    线程创建分三类 1 继承Thread 43 run 启动 xff1a 创建子类对象 43 对象 start 2 实现Runnable 43 run 启动 xff1a 使用静态代理 1 gt 创建真实角色 2 gt 创建代理角色 Thread
  • 死锁

    一个死锁的代码 public class Demo public static void main String args Object g 61 new Object Object m 61 new Object Goods goods
  • 多线程之任务调度

    Timer定时器类 TimerTask任务类 通过java timer timetask xff1a xff08 Spring的任务的任务调度就是通过他们实现的 xff09 在这种实现方式中 xff0c Timer类实现的是类似于闹钟的功能
  • static关键字

    在类中 xff0c 用static声明的成员变量为静态成员变量 xff0c 或者叫做 xff1a 类属性 xff0c 类变量 它为该类的公用变量 xff0c 属于类 xff0c 被该类的所有实例共享 xff0c 在类被载入时被显示初始化对于
  • I/O流读写文件详解

    文件类 文件中路径的写法 xff1a 1 String filePath 61 34 C AAA a txt 34 第一个 表示转义字符 2 filePath 61 34 C 34 43 File pathSeparator 43 34 A
  • 日志工具Log4J

    目前在java编程中 xff0c 日志已经发展出一套成熟的机制 常用的日志控件有Commons logging log4j以及JDK自带的Logging 从最初的System out println 到现在的Log4j xff0c java
  • CAS单点登录(七)——自定义验证码以及自定义错误信息

    在前面我们讲解了CAS单点登录 六 自定义登录界面和表单信息 xff0c 知道了如何去实现页面和表单信息的自定义信息提交 xff0c 就像我们提交表单的信息可能包括手机 邮箱等等 xff0c 这些都能以我们前面的知识点去解决 但平时登录我们
  • Http协议之Request和Response

    协议版本 xff1a Http 1 0 Http 1 1 http1 0协议中 xff0c 客户端与服务器建立连接后 xff0c 只能获得一个 web 资源 http1 1协议中 xff0c 客户端与服务器建立连接后 xff0c 在一个连接
  • Cookie详解

    介绍Cookie xff0c 我们先了解一下什么是会话 会话 xff1a 用户开一个浏览器用于查询相关信息 xff0c 点击多个超链接 xff0c 访问对应的多个web资源 xff08 需要查询的资源 xff09 xff0c 然后关闭浏览器
  • Session浅谈

    在web开发中 xff0c 服务器可以为每个用户浏览器创建一个会话对象 xff08 Session对象 xff09 xff0c 注意 xff0c 一个浏览器独占一个session对象 xff08 默认情况下 xff09 因此 xff0c 在
  • JSP语法(一)

    JSP模板元素 JSP页面中的HTML内容称之为JSP模板元素 JSP模板元素定义了网页的基本骨架 xff0c 即定义了页面的结构和外观 JSP脚本表达式 JSP脚本表达式用于将程序数据输出到客户端的语法 xff1a lt 61 变量或表达