文章目录
摘要
JSP(Java Server Pages)通过将动态代码嵌入到静态的HTML中,从而产生动态的输出。JSP 输入p57页1
重难点
重点:JSP指令和JSP动作
难点:
4.1第一个JSP页面
HTML不能够查询数据库,Java 代码却访问数据库。因此,在 HTML 代码中间混合 Java 代码,就能够让网页拥有动态的功能。而嵌入了 Java代码的网页,就是 JSP。
-
JSP 与 HTML 区别:
- HTML 页面是静态页面,也就是事先写好放在服务器上,由 Web 服务器向客户端发送。JSP 页面是由 JSP 容器执行该页面的 Java 代码部分,然后,实时生成的 HTML页面,因而说其是服务器端动态页面。
-
页面效果,用 JavaScript 也能够实现,有何区别?
最大的区别是:JavaScript 源代码是被服务器发送到客户端,由客户端执行,因此,客户端可以看到 JavaScript 源代码;而 Java 代码却不会。 -
HTML和 JavaScript源代码客户端均可见
-
Java内嵌代码客户端不可见
4.2注释
- HTML注释 ,发送给客户端可见
<!--注释-->
- JSP 注释 ,不发送给客户端不可见
<%--注释--%>
- Java 注释 ,不发送给客户端不可见
//注释 /*注释*/
- 不发送给客户端自然不会被编译也不会被执行
4.3 JSP表达式
-
作用:将其里面内容所运算的结果输出到客户端
-
语法:
<%=变量/返回值/表达式%>
//等价于:
<% out.print(变量/返回值/表达式); %> <!-- 注意分号哦 -->
-
注意细节:
- JSP 表达式中不能用分号";"结束
- 在 JSP 表达式中不能出现多条语句
- JSP表达式的内容一定是字符串类型,或者能通过 toString()函数转换成字符串的形式
4.4 JSP程序段
-
语法:
<% Java代码 %>
-
实际上,JSP 程序段就是插入到 JSP 程序的 Java 代码段。
-
在网页的任何地方都可以插入JSP程序段,在程序段中可以加入任何数量的java代码。
-
注意:不能在JSP程序段中定义函数
-
JSP中可以放入HTML,也可以放入JSP程序段和 JSP表达式;
-
凡是没有写入<% %>的代码,都被解释为HTML
-
JSP中程序段可以用很多段,但系统会认为是一大段,所以程序段中的大括号可以跨多个程序段;
4.5 JSP声明
-
语法:
<%! 代码 %>
-
JSP程序段中(其他地方不一定),必须先定义,后使用。
-
JSP声明中,可以定义网页中的全局变量,这些变量在JSP的任何页面都能使用。
-
JSP声明中定义的变量是网页级别的,系统会优先执行,所以可以在JSP的任何地方定义变量。
-
JSP声明中只能作定义,不能实现逻辑控制。
4.6 URL传值
-
HTTP 是无状态的协议。Web 页面本身无法向下一个页面传递信息,如果需要让下一个 页面得知该页面中的值,除非通过服务器。
-
流程如图:
-
语法:
?参数名1=参数值1&参数名2=参数值2&参数名3=参数值3&.... //举个栗子 http://localhost:8080/prj04/page.jsp?m=3&n=5
//获得参数 <% String str = request.getParameter("m"); %>
-
提示:
- 如果参数没有传过来或者参数名写错,str为null。
- 和out一样,request也是JSP九大对象之一,作用是获取请求的信息。
-
方法局限:
- 传输的数据只能是字符串
- 传输数据的值会在浏览器的地址栏里面被看见(不安全)
-
URL传值的优势:
简单性和平台支持的多样性(没有浏览器不支持 URL),很多程序还是用 URL 传值比较方便 集合框架包括接口、实现和算法
4.7 JSP 指令和动作
- JSP 指令告诉 JSP 引擎对 JSP 页面如何编译,不包含控制逻辑,不会产生任何可见的输
出。 - 语法:
<%@ 指令类别 属性1="属性值1" ··· 属性n="属性值n" %>
<!--eg: -->
<%@ page contentType="text/html; charset=gb2312" %>
- 注意:属性名大小写敏感。
- JSP 包含三个指令:page、include 和 taglib。其中,使用最多的是 page 指令和 include 指令。
- 通常情况下,JSP程序都是以page指令开头的。page指令用来设定页面的属性和相关功能,可以导入需要的类、指明JSP输出内容的类型、指定处理异常的错误页面等操作。
page指令
1. 导入包
-
语法:
<%@ page import="包名.类名" %> <%@ page import="包名.*" %> // 用*表示导入包中所有类 <%@ page import="包名1.类名1" %> <%@ page import="包名2.类名2" %> <!--或者--> <%@ page import="包名1.类名1,包名2.类名2" %> //导入多个类
2. 设定字符集
- 语法:
<%@ page pageEncoding="编码类型" %> <!-- 常见编码 ISO-8859-1 gb2312 GBK -->
<!--例如-->
<%@ page pageEncoding="GBK" %>
3. 设定错误页面
- 语法:
<!--在发生异常的页面-->
<%@ page errorPage="anErrorPage.jsp" %> <!-- anErrorPage.jsp就是处理异常的页面-->
<!--在异常处理显示页面-->
<%@ page isErrorPage="true" %>
4. 设定MIME类型和字符编码
- 语法:
<%@ page contentType="MIME类型; charset=字符编码" %> <!--charset的作用与pageEncoding属性作用相同-->
<!--栗子:-->
<%@ page contentType="text/html; charset=gb2312" %>
include指令
- 可以在JSP程序中插入多个外部文件,这些文件可以是JSP、HTML、Java程序,甚至是文本。编译时,include指令就会把相应的文件包含进主文件。
- 作用类似C语言中的include预编译指令,都是原封不动的复制插入文件中的代码到主文件中。
- 可用提高代码的重复使用。
- 语法:
<%@ include file="文件名" %>
<!--例如-->
<%@ iuclude file="logo.jsp" %>