JSP语法(一)

  • 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>

扫描二维码关注公众号,回复: 1616939 查看本文章
  • 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,运行时生成,影响性能 推荐使用静态包含


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



猜你喜欢

转载自blog.csdn.net/kermit_father/article/details/80500826