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语法(一) 的相关文章

  • 在页面加载时从 JSP 文件调用 servlet

    我可以在不使用 HTML 表单的情况下从 JSP 文件调用 servlet 吗 例如 在页面加载期间在 HTML 表中显示数据库的结果 您可以使用doGet http docs oracle com javaee 7 api javax s
  • 如何使用 JSF/MyFaces 创建基于用户角色的条件?

    我必须使用哪些选项才能从 JSP 页面读取当前用户的角色 我知道visibleOnUserRole myRole Tomahawk 组件上的属性 但我需要角色来处理比简单可见性更复杂的事情 The 外部上下文 http docs oracl
  • 如何将欢迎页面设置为 struts 操作?

    我有一个基于 struts 的 web 应用程序 我希望默认的 欢迎 页面成为一个操作 我发现的唯一解决方案似乎是使欢迎页面成为包含操作重定向的 JSP 例如 在web xml
  • 如何以正确的方式从 JavaScript 获取 contextPath?

    使用基于 Java 的后端 即 servlet 和 JSP 如果我需要来自 JavaScript 的 contextPath 建议的模式是什么 为什么 我能想到几种可能性 我还缺什么吗 1 将 SCRIPT 标签烧录到页面中 并在某些 Ja
  • 如何使用 jasper 从 jsp 生成 pdf 格式的报告

    在我的应用程序中 我可以连接到数据库并获取数组结果集 并使用 JSP 代码迭代该数组并使用 HTML 在网页中显示报告 我希望 HTML 网页中生成的报告可以以 PDF 格式导出并保存在某个 pdf 文件中 请告诉我如何实现这样的技术来实现
  • 数组在浏览器中给出 null 作为输出

    我测试了我的 Java 程序是否正确从 MySQL 检索数据 然而 问题出在Java和JSP之间 JSP页面无法从java程序中检索数据 请帮助我 它给出的输出为空 null null hai 我的jsp页面 div style heigh
  • 在Struts1.3中如何处理多个FormBean属性到action

    我正在使用Struts1 3 我有Jsp页面 该页面显示该页面上的员工列表 为此 我所做的是 我在该操作中有一个操作 我正在调用一个返回列表的函数 并且我在会话中将这些列表设置为 session setAttribute Constant
  • 如何使用递归获取父级的所有子级,然后获取其子级

    问候 我的 JSP Web 应用程序中有父事务的比喻 我将事务 ID 存储在数据库中 要求是显示父级的所有子级 然后显示父级子级的后续子级 实际上 这个父母及其孩子的列表永远不会超过 4 或 5 层 但我需要考虑到它可以比这更多层 我尝试过
  • JSP 通常是作为 .jsp 文件、预编译的 Java 文件还是预编译的类文件提供的?

    在为生产环境准备 WAR 时 是否有打包 JSP 的 标准 实践 它们是否包含为 jsp 文件 或者它们是否作为预编译的 Java 文件或预编译的类文件包含在内 Servelts JSP 规范没有提及预编译 JSP 来实现此功能具体到容器实
  • 如何从JSP中获取java类的对象

    我有一个结果jsp页面 它打印java类的字符串变量 有人能给我任何想法吗 我使用简单的 httpServlet 作为操作类 Class A String name public void setName this name callMet
  • Struts 2 动态变量

    我正在尝试使用 set 标签在 Struts2 中创建动态变量
  • 如何让jsp中的spring security角色层次结构工作?

    我尝试让角色层次结构在我的应用程序中发挥作用 我唯一想要的是在所有级别定义的层次结构 在 url 级别 现在也在视图级别 在我的 jsp 文件中 我使用以下设置
  • 属性编辑器未向 PropertyEditorManager 注册:自定义标记调用时出错

    调用我的时出现以下错误testtag jsp org apache jasper JasperException 无法将属性 att1 的字符串 转换为类 javax servlet jsp tagext JspFragment 属性编辑器
  • struts2 date无法通过jquery datetimepicker获取时间

    我是struts2的新手 创建了一个小型Web应用程序 我想要一个帖子是计时器 我选择jquery datetimpicker 在用户选择时间和日期后 它将显示用户选择的时间和日期 我用这个jquery http www javascrip
  • JSP 作为电子邮件模板

    有没有办法发送 MIME 电子邮件 其中电子邮件正文源自 JSP 我需要使用 Javamail 发送一封电子邮件 其中包含一个表格 我认为如果我可以使用 JSP 来完成所有格式设置和布局 将会很方便 在这个线程中 Java 电子邮件模板的建
  • 防止浏览器弹出警告窗口

    我正在尝试在新窗口中打开 jsp 页面 使用 JavaScriptwindow open产生浏览器警告 并且在某些情况下 firefox 将默认阻止弹出窗口 有没有办法解决这个问题 这不是恶意应用程序 它是内部用户工具 大多数浏览器不会阻止
  • JSP 标签+ scriptlet。如何启用脚本?

    我有一个使用标签模板的页面 我的 web xml 非常基本 我只是想在页面中运行一些代码 不 我对标签或其他替代品不感兴趣 我想使用不好的做法 scriptlet 哈哈 到目前为止 我收到了 HTTP ERROR 500 错误 Script
  • 将java应用程序转换为jsp/servlet [重复]

    这个问题在这里已经有答案了 我有一个接受分段上传的java应用程序 我的问题是我想要一个HTML JSP前端 而不是仅仅在服务器上工作 根据我提供的代码 实现此目的的最佳方法是什么 这对我来说有点困惑 因为我不确定如何将文件上传部分带入 h
  • 如何比较 Struts 2 中 url 请求参数中的单个字符

    我正在读取具有单个字符的 url 参数 它将是Y or N 我必须写一个条件来检查它是否Y or N并做相应的事情 这是我写的 但似乎不起作用 总是转到其他地方 网址是
  • 如何将 arraylist 从 servlet 传递到 javascript?

    我通过在属性中设置数组列表并将其转发到 jsp 来从 servlet 传递数组列表 Servlet ArrayList

随机推荐

  • 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 变量或表达