目录:
- 1.JSP
- 2.JSP注释
- 3.JSP 和 HTML有什么区别?
- 4.JavaScript (JS) 和 JSP有什么区别?
- 5.JSP表达式
- 6.JSP程序段
- 7.JSP声明
- 8.URL传值
- 9.JSP指令
- 9.1Page指令的作用
- 导入包
- 设定字符集
- 设定错误页面
- 设定MIME类型和字符编码
- 9.2include指令
- 9.3taglib指令
- 10.JSP动作
- 11.include动作 和 include指令的区别
1.JSP
- JSP (Java Server Pages)将 动态代码 嵌入到 静态的HTML 中,从而产生动态的输出。
- JSP运行于服务器端,能够对客户端展现内容,JSP属于 动态网页。
- Java代码可以访问数据库,因此在HTML页面中混合java代码就能让网页拥有动态的能力,
而 嵌入了“Java代码”的“网页”就是JSP。
2.JSP注释
注释是代码不可或缺的重要组成部分,JSP注释可以分成以下两个部分 / 两大类。
一类是: 能发送给客户端的,可以在源代码中展示出其内容的,这是属于HTML注释。
<!-- HTML注释内容 --> ps: 其为html注释,客户端能看到HTML注释中的内容
另一类是: 不能发送给客户端 的, 也就是说客户端的源代码文件中不会展示“注释的内容”,仅供给程序员阅读。该注释分为
①JSP注释 ②Java注释
<%-- JSP注释内容 --%> ps: 其为JSP注释,客户端看不到注释的内容
<%out.print("欢迎来到本系统"); //Java单行注释/*Java多行注释*/ %> ps: 其为Java注释,客户端看不到注释的内容
3.JSP 和 HTML有什么区别?
- HTML页面是静态页面,也就是事先由用户写好放在服务器上,由web服务器向客户端发送。
(HTML中敲的代码用户都能看到)- JSP页面由JSP容器执行该页面的Java代码部分,然后生成实时的HTML的页面,也就是说它是“服务器端动态页面”。(在客户端源代码中是 看不到Java代码 的)
4.JavaScript (JS) 和 JSP有什么区别?
JavaScript 源代码是“服务器”发送到“客户端”,由客户端执行,因此在客户端可以看到JavaScript代码
(客户端看到所有的代码)JSP 是由JSP容器执行该页面的Java代码部分,然后生成实时的HTML页面,在客户端源代码中是 看不到Java代码 的。
5.JSP表达式
JSP表达式 : 用于定义JSP的一些输出。可理解为输出语句。
JSP表达式的作用 : 将里面的内容所 运算的结果输出到客户端。
JSP表达式的语法 : <%= 变量/返回值/表达式 %>
ps : 等价于 <% out.println(变量) %>使用JSP表达式的注意事项:
① 使用JSP表达式不能用 ; 结束。
② 使用JSP表达式不能出现多条语句。
③ JSP表达式中内容一定是字符串类型的,或者可以通过toString()函数来将其转换为字符串类型。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>JSP表达式 : 输出内容到客户端</title> </head> <body> <%int i = 123;double d = 13.14; %> <br> <%-- 使用JSP表达式来在将结果输出到客户端中,即将该变量的内容展示在页面上。 --%> <%= i %> <%= d %> </body> </html>
6.JSP程序段
前面的内容已经提到表达式只能单行出现,而仅仅也只是将其中的运行结果输出到客户端,如果需要在JSP程序中输出数据又实现定义变量等一系列复杂的逻辑操作,JSP表达式是不能满足需求的,这时候需要用 JSP程序段。
JSP程序段 : 插入到 JSP程序 中的 Java代码。在网页的任何地方都可以插入JSP程序段,在程序段中可以加入任意的Java 代码。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>JSP程序段例子1</title> </head> <body> <%-- 使用for循环输出10个欢迎信息 --%> <%for (int i = 1; i <= 10; i++) {out.print("欢迎来到本系统<br>");} %><%-- 注意: 不能再JSP程序段中定义函数 --%> </body> </html>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>JSP程序段例子2</title> </head> <body> <%-- 该JSP页面中中混合了“JSP程序段”、“JSP表达式”和HTML代码 --%> <%for (int i = 1; i <= 10; i++) { %> <%= i%>:欢迎来到本系统<br> <%} %> </body> </html>
7.JSP声明
JSP程序段中的 变量必须先定义再使用。例如,以下代码会报错,可声明 全局变量,防止此类报错。
<%//此处会报错,因为得先声明才能使用 //使用全局声明,可以防止因为位置先后顺序而导致的报错out.println(str);String str = "欢迎"; %>
JSP声明中声明的变量为全局变量,这些变量在JSP页面中的任意地方都能使用。
在实际应用中,方法、页面全局甚至类的声明都可以放在JSP声明部分 其使用方法如下:
JSP声明语法 : <%! 代码 %>
JSP声明 中只能用作定义,不能实现控制逻辑(如果不能在其中输出语句、输出内容)。
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>JSP声明(声明全局变量等)</title> </head> <body> <%out.println(str); %><%-- 在JSP声明中声明变量,同时JSP声明不受限制的,在JSP页面的任何地方使用其中定义的变量 --%> <%! String str = "欢迎"; %><%-- JSP声明中只能用作定义,不能实现控制逻辑(如果不能在其中输出语句、输出内容)--%> </body> </html>
8.URL传值
HTTP是无状态的协议。web页面本身无法向下一个页面传递信息,如果需要让下一个页面得知得知该页面的值,可通过 url传值。
可通过 url进行页面跳转,在 url后携带有传给指定页面的参数。
URL传值的格式 : URL?参数名1=参数值1&参数名2=参数值2&…
获得url传递的参数 : request.getParameter(“参数名”);
one.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>URL传值 one.jsp</title> </head> <body> <a href="two.jsp?name='张三'&age='23'">跳转到two.jsp,且在url上有携带的值</a> </body> </html>
two.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>two.jsp</title> </head> <body> <%//获得url上携带参数String name = request.getParameter("name");String age = request.getParameter("age"); %> </body> </html>
urlp1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>urlP1.jsp</title> </head> <body> <%-- 以下的这些代码为JSP程序段,JSP程序段中能写Java代码 --%> <%//定义一个变量String str = "12";//将该变量转换为int类型int number = Integer.parseInt(str);String name = "张三"; %> <%-- 用JSP表达式 来页面上输出/展示数据 --%> 该数字的平方为: <%= number*number %><%-- 使用url传参向urlP2.jsp页面传值 --%> <a href="/书本上代码和知识点/第四章/URL/urlP2.jsp?number=<%= number %>&name=<%= name %>">到达p2</a><%-- 这顿代码的关键是: 通过url传值,把想要传递的值传给下一个页面--%> </body> </html>
urlp2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>urlP2.jsp</title> </head> <body> <%-- 获得urlP1.jsp页面中传来的参数的内容 --%> <%//获得number (获取url传递的参数的值)String str = request.getParameter("number");int number = Integer.parseInt(str); //将String类型数据转换为int类型String name = request.getParameter("name"); %> <%-- 结合html + JSP表达式 来在页面上输出“该数字的立方”--%> 该数字的立方为: <%= number * number *number%><hr> 姓名为: <%= name %><hr> </body> </html>
9.JSP指令
JSP指令 是告诉JSP引擎对JSP页面如何编译,不包括控制逻辑,不会产生任何其他可见的输出。
JSP指令 语法属性名是大小写敏感的。
JSP指令的语法 : <%@ 指令类型 属性1=“属性值1” … 属性n="属性值n>
JSP包含3个指令: ①page指令 ②include指令 ③tablib指令 ,使用最多的是page指令 和 include指令
9.1Page指令的作用
在通常情况下,JSP程序 都是以 page指令开头 的。page指令用来设定页面的属性和相关功能,用户可以利用其进行导入需要的类、指明JSP输出内容的类型、指定处理异常的错误页面等操作。
导入包
<%@ page contentType="text/html;charset=gb2312" language="java" %><%-- 用JSP指令导入包 --%>
<%@page import="java.util.Date" %>
<html>
<head><title>Page指定导入包</title>
</head>
<body>
你的登录时间为:<%= new Date()%>
</body>
</html>
设定字符集
<%@ page contentType="编码类型" %>
<%@ page contentType="text/html;charset=gb2312" %>
设定错误页面
在网页中经常由于用户输入造成异常。在一般情况下会将异常现象在一个统一的网页中显示。这时要用到errorPage 和 isErrorPage属性
pageTest.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%-- 该页面报错试时,展示的错误页面 --%> <%-- 该JSP页面出现异常时会跳转到anErrorPage.jsp 页面 --%> <%@ page errorPage= "anErrorPage.jsp"%> <html> <head><title>Page指令作用 : 指定错误页面</title> </head> <body> <% //此页面如果发生异常会向anErrorPage.jsp页面抛出异常,让其处理int num1 = 10;int num2 = 0;int num3 = num1 / num2;//此处会报错,有异常就跳转到anErrorPage.jsp,给客户展示一个错误页面。 %> </body> </html>
pageTest_error.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isErrorPage="true" %> <html> <head><title>pageTest2_error.jsp指令</title> </head> <body> <%//此页面会处理pageTest.jsp抛出异常//友好的显示错误信息out.print("网页出现数学运行异常!"); %> </body> </html>
设定MIME类型和字符编码
设置MIME类型和字符编码用户可以用contentType来设置MIME类型和可选字符编码。
<%@ page contentType="MIME类型;charset= 字符编码" %>
<%@ page contentType="text/html;charset=UTF-8" %>
9.2include指令
在实际开发案例中,每一个项目中每一个页面底下需要显示公司的地址和图标信息,不可能说每一个页面都编写一个次显示该信息的代码。为了代码的重用可以用 include 指令来解决。使用include指令可以在JSP程序中插入多个外部文件(插入外部文件),这些文件可以是JSP、HTML或Java程序,甚至是文本
include指令的 语法 : <%@ include file=“文件名” %>
(file:必要属性,用于指定包含哪个文件,可多次使用include指令到导入文件、程序等)includeTest.jsp
<%-- 使用JSP中的 include指令来导入其他文件、代码等--%> <%@ include file="info.jsp" %>
info.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>第四章 include指令 info.jsp</title> </head> <body> <center>公司电话号码:010-89574895,欢迎来电! </center> </body> </html>
9.3taglib指令
10.JSP动作
JSP动作 使用 XML语法 格式来控制服务器的行为。
JSP动作语法 : <jsp:动作名 属性1=“属性值1” … 属性n=“属性值n” /> 或者
<jsp:动作名 属性1=“属性值1” … 属性n=“属性值n”> 相关内容 </jsp:动作名>JSP动作如下:
jsp:include 表示当前页面被请求的时候引入了一个文件
jsp:forward 表示将请求转到另一个页面
jsp:useBean 表示获得JavaBean的一个实例
jsp:setProperty 表示设置JavaBean的属性
jsp:getProperty 表示获取JavaBean的属性
jsp:plugin 表示根据浏览器的类型为Java插件生成OBJECT或EMBED两种标记。使用include动作来导入内容
<%-- 下面为JSP动作中的 include动作的例子 --%> <jsp:include page="文件名"/>
jspForwardTest.jsp (使用forward动作来“请求转发”)
<%-- 下面为JSP动作中的 forward动作的例子 --%> <jsp:forward page="pageTest1.jsp"/>
pageTest1.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>第四章 forward动作 pageTest1.jsp</title> </head> <body> 成功在在原页面通过forward动作跳转到该页面了..... </body> </html>
11.include动作 和 include指令的区别
include动作 和 include指令 的区别 :
include动作和 include指令的作用差不多 : 在一个页面中导入另一个页面/代码。但两者的语法有差异。