JSP(3)脚本、注释、指令

来源:互联网 发布:英雄联盟网络监控 编辑:程序博客网 时间:2024/06/15 03:49

【1 JSP三种脚本元素】

(1)JSP声明:(脚本声明)


声明(declaration)用来在JSP页面中声明变量和定义方法。
声明是以<%!开头,以%>结束的标签,其中可以包含任意数量的合法的Java声明语句。

格式:<%!  书写Java代码;  %>

下面是JSP声明的一个例子:
<%! int count = 0; %>

(2)JSP小脚本(脚本片段)


小脚本(scriptlets)是嵌入在JSP页面中的Java代码段。
小脚本是以<%开头,以%>结束的标签。

格式:<% Java代码片段%>

例如<% count++; %>

源代码:代码翻译在_jspService方法中
脚本片段,即使分开书写,也能最终组合在一起

小脚本在每次访问页面时都被执行,因此count变量在每次请求时都增1.由于小脚本可以包含任何Java代码,所以它通常用来在JSP页面嵌入计算逻辑。同时还可以使用小脚本打印HTML模板文本。

(3)JSP表达式编辑(脚本表达式)


表达式(expression)是以<%=开头,以%>结束的标签,它作为Java语言表达式的占位符。
包含一个符合Java语法的表达式。表达式的元素在运行后被自动转化为字符串,然后插入到这个表达式的JSP文件的位置显示。因为这个表达式的值已经转化为字符串,所以能在一行文本中插入这个表达式。表达式是一个简化的了的out.println语句。可以将数据输出到页面
在页面每次被访问时都要计算表达式,然后将其值嵌入到HTML的输出中。

与变量声明不同,表达式不能以分号结束

因此下面的代码是非法的:
<%= count; %>
使用表达式可以向输出流输出任何对象或任何基本数据类型的值,也可以打印任何算术表达式、布尔表达式或方法调用返回的值。
在JSP表达式的百分号和等号之间不能有空格

格式:<%= 表达式%>

源代码:代码翻译在_jspService方法中,而且,被输出流输出

如<%= count%>


【2 jsp中的注释】


JSP中可以写哪些注释?

1)html注释

格式:

<!--这是HTML的注释方式注释,不会在浏览器中显示。 -->

作用:


2)css注释

3)java注释

Java的注释必须嵌入在上面介绍的三个脚本中,不能在jsp其他位置书写。


也称为JSP页面中的普通注释:JSP页面中的普通注释是指以下两种样式的注释方法:


    <% // 注释内容%> 
    <% /* 注释内容*/ %>
 以上两个注释都将由浏览器忽略。

4)js注释

5)jsp注释

也称为JSP页面中的隐藏注释

使用“<%--”和“--%>”创建,

它的具体形式如下所示:

<%-- 注释内容 --%>

JSP语句中的隐藏注释嵌入在JSP程序的源代码中,使用隐藏注释的目的并不是提供给用户的,

它可以达到两种目的:
一,是为 了程序设计和开发人员阅读程序的方便,增强程序的可读性。一个优秀程序员的良好注释风格对于整个项目开发组以及长远使用来说,很重要。
二,是在增强程序可读性的同时又顾及程序系统的安全性,用户如果通过Web浏览器查看该JSP页面,看不到隐藏注释中注释的内容。


注释使用总结:


<!-- jsp作用:简化书写html标签,动态的生成网页内容(jsp中可以书写java代码)演示,jsp文件中的各种注释 -->
 <%-- jsp文件中注释 :不会翻译到 .java文件中--%>
 <%-- html注释,无法注释掉java代码,但是,在html文件中依然起作用 --%>
 <%-- java注释会原封不动的翻译到.java文件中 --%>
 <!--11111 <% //int i = 0; %> -->
 <%-- 总结:希望在哪个类型的文件中,看到注释,就使用哪种类型的注释 --%>


【3 jsp中page指令】

什么是指令?就是一段代码(代码就一段文本)

格式为:
<%@ 指令的名字  key=value  key=value  …….%>

例子:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

Key:属性名称 Value:属性值  
Key和value值是用来设置jsp页面(例子:<a  href=”http://www.baidu.com”></a>)

page指令的功能:对jsp页面进行设置的指令


Page指令:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
学习page指令(主要是学习指令中的key和value,它们是用来设置jsp的):

1】language="java"
声明当前jsp使用的编程语言,默认值是java(它现在也只支持java)(工作的时候也是写java)

2】import="java.util.*" 
导入要使用的包(工作的时候,需要导入类的时候使用)
注意jsp有部分包不用手动导入:

3】pageEncoding="UTF-8"
设置当前jsp源文件的编码表(工作的时候,就使用UTF-8)

4】contentType="text/html; charset=utf-8"
设置浏览器解析html的编码表,有pageEncoding的情况可以不设置
相当于:Response.setcontentType(“text/html;charset=utf-8”)  (工作的时候,不写这个属性)
当设置过pageEncoding="UTF-8"之后,浏览器解析的时候,默认使用UTF-8,所以不再重新设置编码表。

5】errorPage="500.jsp"
设置在当前jsp页面发生异常(int I = 1/0;)后,跳转那个页面(500.jsp)。(工作的时候,如果页面有可能发生错误)

6】isELIgnored="true"
是否解析jsp中的EL表达式(工作的时候,一般不写,使用默认的,默认为false解析El表达式

7】session="true"
设置在当前的页面中是否可以直接使用session对象(工作时候一般不设置,默认为true
 
8】isErrorPage="true"
设置当前的JSP页面(500.jsp),是否是显示错误信息页面(500.jsp),如果是错误页面可以看到错误的信息(使用exception对象——jsp中的对象)
  
补充:一般开发的时候,会把整个项目中的常见的错误处理配置到web.xml文件中

测试统一错误配置的时候,需要将jsp page指令中 errorPage属性去掉。


<!-- 配置统一的错误页面  -->  <error-page>  <!-- 服务器的错误响应码 -->  <error-code>500</error-code>  <!-- 跳转那个页面 -->  <location>/500.jsp</location>  </error-page>

【4 jsp中include指令】

应用场景:

一个网页,一般它的最顶部是一个页面,而最底部是一个页面,主体部分是另外一个页面

<%@include file="header.jsp" %><br>这是新闻主体<br><%@include file="footer.jsp" %>

使用这个include指令三个jsp文件最终变成一个class文件,这样引入页面的方式叫做静态引入。
在运行之前,所有的代码已经写在.java源文件中

工作中:需要在当前页面引入其他页面,使用include指令。


【5 jsp中taglib指令】


作用:taglib指令在jsp中导入已经定义好的标签库或者函数库(与类库(java对象,一个一个类)不是一个概念),方便程序员使用定义好的标签和函数。
解释:
将已经定义好的对象(标签和函数),导入到当前的jsp文件中,让我们可以使用。(相当于使用import关键字,可以导入其他已经定义好的java类

为什么需要标签和函数? 
方便前端和后端开发人员学习,可以使用同一种方式,开发jsp页面
页面由美工维护,美工不懂java代码,需要在jsp页面将java代码剔除,使用标签代替java代码,使用这些标签需要使用taglib指令来引入标签库。

工作的时候:需要用到标签库和函数库,都会使用taglib指令

示例:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%--prefix="c" :设定使用标签库或则函数库的短名称,取个小名uri="http://java.sun.com/jsp/jstl/core"  相当于 :java.util.*设置要导入的标签的全路径,只是这个路径,他长得像地址 --%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Insert title here</title></head><body><c:out value="《银河护卫队2》"></c:out></body></html>

在taglib指令中的属性:

uri:是当前标签对应的Java代码封装之后的名称空间——指定了一个网址,这个网址是用来确定,我们要引入的是那个标签库或者函数库
prefix(前缀):它是当前在页面上可以使用的标签的短名称——小名。

Taglib指令原理:本身jsp可以书写java代码,html、js、java在一个源文件上混杂一起维护不方便,所以将页面的java代码抽取成java类,然后将类配置到文件中,再在jsp页面上导入配置的java类,这样就可以以标签的方式使用定义好的java功能


1   页面的java代码抽取成java类
2   将类配置到文件中
3   jsp页面上导入配置的java类

标签库主要Jar包(jstl-impl.jar)
标签库主要配置文件(xxx.tld)
配置文件源代码:xxx.tld



原创粉丝点击