JSP页面是指扩展名为.JSP的文件
在一个JSP页面中 可以包括指令标识 HTML代码 JavaScript代码 嵌入的JAVA代码 注释和JSP动作标识等内容。
下面实例编写了一个JSP页面 显示当前时间
代码如下 配置环境为Eclipse 如不懂怎么配置的可以参考我这篇博客JAVA Web环境配置
1:指令标识
指令标识主要用于设定整个JSP页面范围内都有效的相关信息 它是被服务器解释并且执行的 会产生任何内容输出到网页中 语法如下
<%@ 指令名 属性1="属性值1" ...%>
指令名 包括page include taglib三条指令
1.1:page指令
page是JSP页面最常用的指令 用于定义整个JSP页面的相关属性 这些属性在JSP中被服务器解析成Servlet时会转换为相应的Java程序代码 语法如下
<%@ page attr1="value1" attr2="value2"...%>
常用属性如下
language 设置JSP页面使用语言 目前只支持JAVA
%@ page language="java"
import 导入类包
<%@page import="java.util.Date" %>
pageEncoding 定义JSP页面的编码格式 GB18030支持中文
pageEncoding="GB18030"%>
contentType 设置JSP页面的MIME类型和字符编码 浏览器会据此显示网页内容
contentType="text/html;
2:include指令
文件包含指令include时JSP的另一条指令标识 通过该指令可以在一个JSP页面中包含另一个JSP页面。 语法如下
<%@ include file="path"%>
该指令只有file一个属性 指定要包含文件的路径 可以是相对路径也可以是绝对路径
实战效果如下 本质上有点类似于调用了其他JSP文件的内容
代码如下 总共有三个JSP文件
<%@ page pageEncoding="GB18030"%> <img src="玫瑰少年.jpg"> <%String manager="张三";%> 管理员:<%=manager%> <%=24+34%> <body> <% String str=""; for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ str+=j+"*"+i+"="+j*i; str+=" "; } str+="<br>"; } %> <table width="440" height="85" border="1" cellpadding="0" cellspacing="0" style="font:9pt;" bordercolordark="#666666" bordercolorlight="#FFFFFF" bordercolor="#FFFFFF"> <tr> <td height="30" align="center"> 九九乘法表</td> </tr> <tr> <td style="padding:3pt"> <%=str %> </td> </tr> </table> </body> <%@ page pageEncoding="GB18030"%> <% String copyright=" All Copyright © 2022 华南理工大学"; %> <table width="778" height="61" border="0" cellpadding="0" cellspacing="0" background="JavaScript-logo.png"> <tr> <td><%=copyright %></td> </tr> </table> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=GB18030"> <title>使用文件包含include指令</title> </head> <body> <body style="margin:0px"> <%@ include file="top.jsp" %> <table width="781" height="279" border="0" cellpadding="0" cellspacing="0" background="C:\Users\Admin\Desktop\玫瑰少年.jpg"> <tr> <td> </td> </tr> </table> <%@ include file="copyright.jsp" %> </body> </html>
3:taglib指令
在JSP文件中 可以通过taglib指令标识声明该页面中所使用的标签库 同时引用标签库 并指定标签的前缀 在页面中引用标签库 就可以通过前缀来引用标签库中的标签 语法如下
<%@ taglib prefix="tagPrefix" url="tagURL"%>
4:脚本标识
在JSP页面中 脚本标识使用得最为频繁 因为他们能够方便 灵活地生成页面中得动态内容 特别Scriptlet脚本程序 包括三部分 JSP表达式 声明标识 脚本程序
4.1:JSP表达式
JSP表达式用于向页面中输出信息 语法如下
<%=表达式%>
表达式可以是任意JAVA 语言的完整表达式 该表达式的最终运算结果被转换为字符串
使用JSP在页面中输出信息 代码如下
<%String manager="张三";%> 管理员:<%=manager%> <%=24+34%>
4.2:声明标识
声明标识用于在JSP页面中定义全局的变量或方法 通过声明标识定义的变量和方法可以被整个JSP页面访问 所以通常使用该标识定义整个JSP页面需要引用的变量或方法 语法如下
<%! 声明变量或方法的代码%>
<%! int number=0; int count(){ number++; return number; } %>
4.3:代码片段
所谓代码片段 就是在JSP页面中嵌入的JAVA代码或是脚本代码 代码片段在也页面请求的处理期间被执行 语法如下
<%java代码或是脚本代码%>
以下是通过代码片段和JSP表达式在JSP页面中输出九九乘法表
<body> <% String str=""; for(int i=1;i<=9;i++){ for(int j=1;j<=i;j++){ str+=j+"*"+i+"="+j*i; str+=" "; } str+="<br>"; } %> <%! int number=0; int count(){ number++; return number; } %> <table width="440" height="85" border="1" cellpadding="0" cellspacing="0" style="font:9pt;" bordercolordark="#666666" bordercolorlight="#FFFFFF" bordercolor="#FFFFFF"> <tr> <td height="30" align="center"> 九九乘法表</td> </tr> <tr> <td style="padding:3pt"> <%=str %> </td> </tr> </table> </body>
5:JSP注释
JSP注释与JAVA和C++比较相似
单行注释//
多行注释/* */
提示文档注释/** */
隐藏注释 在文档中添加的注释在查看HTML源码时是可以看到的 这样不太安全 JSP提供一种隐藏注释 这样在浏览器中看不到 在查看HTML源代码时也看不到 语法如下
<%--注释内容--%>
效果如下
代码如下 要注意代码中两行隐藏的注释没有显示出来
<%--显示用户信息开始 --%> 用户名:玫瑰少年<br> 部门: JAVA Web部门<br> 权限: 系统管理员 <%--显示用户信息结束 --%>
6:动作标识
6.1:包含文件标识<jsp:include>
其作用跟前面讲的include比较相似 都是向当前页面包含其他的文件 语法如下
<jsp:include page="url" flush="false/true"/>
其与include区别有以下几点
1:include通过file属性指定被包含的文件 且不支持任何表达式 <jsp:include>
的属性明显更多 更加灵活
2:使用include指令时 被包含文件的内容会原封不动的插入到包含页中 然后JSP编译器将合成后的文件最终编译成一个JAVA 文件 使用<jsp:include>
包含文件时,程序会将请求转发到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页,继续执行后面的代码 然后JSP编译器在分别编译
3:在应用include时 变量或方法不能重名 因为他们最终是一个文件 而使用<jsp:include>
时因为每个文件时单独编译的 所以可以重名
6.2:请求转发标识<jsp:forward>
通过转发标识可以将请求转发到其他的web资源 例如另一个JSP页面 HTML页面等等 当前页面不再被执行 而去执行该标识指定的目标页面 语法如下
<jsp:forward page="url"/>
效果如下 分为两个JSP文件
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=GB18030"> <title>中转页</title> </head> <body> <jsp:forward page="login.jsp"/> </body> </html> <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>用户登录</title> </head> <body> <form name="form1" method="post" action=""> 用户名:<input name="name" type="text" id="name" style="width:120px"><br> 密 码:<input name="pwd" type="password" id="pwd" style="width: 120px"><br> <br> <input type="submit" name="Submit" value="提交"> </form> </body> </html>
7:传递参数标识<jsp:param>
该标识可以作为其他标识的子表示 用于为其他标识传递参数 语法如下
<jsp:param name="参数名" value="参数值"/>
代码如下
在实现请求转发的同时 传递了参数userid 其参数值为7
<jsp:forward page="modify.jsp"> <jsp:param name="userid" value="7"/> </jsp:forward>
创作不易觉得有帮助请点赞关注收藏~~~