0
点赞
收藏
分享

微信扫一扫

WEB项目之JSP页面的组成

眼君 2022-06-01 阅读 50

WEB项目之JSP页面的组成

在进行javaWEB应用开发时,JSP是必不可少。因此在学习javaWEB应用开发时还必须掌握JSP语法


JSP页面的组成

  • ​​WEB项目之JSP页面的组成​​
  • ​​我的第一个jsp文件​​
  • ​​指令标识​​
  • ​​参数说明​​
  • ​​page指令​​
  • ​​include指令​​
  • ​​taglib指令​​
  • ​​参数说明​​

  • ​​脚本标识​​
  • ​​JSP表达式​​
  • ​​声明标识​​
  • ​​代码片段​​
  • ​​JSP注释​​
  • ​​HTML中的注释​​
  • ​​带有JSP表达式的注释​​
  • ​​隐藏注释​​
  • ​​动态注释​​
  • ​​动作标识​​

我的第一个jsp文件

在一个jsp页面中,可以包括指令标识、HTML代码、javaScipt代码,嵌入的java代码、注释和JSP动作标识

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
 <%@ page import = "java.util.Date" %>
 <%@ page import = "java.text.SimpleDateFormat" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>输出当前时间</title>
</head>
<body>
<h3>当前时间</h3>
<%
Date date = new Date();
SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = df.format(date);
%>
<%=today %>
</body>
</html>

指令标识

指令标识主要用于设定整个jsp页面范围内都有效的相关信息,他是被服务器解释并执行的,不会产生任何内容输出到网页中。

JSP指令标识的语法格式

<%@ 指令名 属性1 ="属性值1" 属性2 = "属性值2".....%>

参数说明

指令名:用于指定指令名称,在JSP中包含page、include、和taglib三条指令

属性:用于指定属性名称,不同的指令包含不同的属性,不同的指令包含不同的属性。在一个指令中,可以设置多个属性,各属性时间用逗号或空格隔开

属性值:用于指定属性值

创建JSP文件时,在文件的最底端会默认添加一条指令,用于指定JSP所使用的语言、编码方式

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>

page指令

page是JSP页面最常用的指令,用于定义整个JSP页面的相关属性,这些属性在JSP被服务器解析成Servlet时会转换为相应的java程序代码。

<$@page attr1 = "value1" attr2 ="value2"......%>

page最常用的10个属性

//1.language属性:用于设置JSP页面使用的语言
<%@ page language="java" %>

//2.extends属性:用于设置JSP页面继承的Java类,JSP页面在执行之前都会被服务器解析成Servlet,Servlet是由 java定义,所以JSP和Servelt都可以继承指定的父类,但是并不长用,有可能会影响服务器的性能优化

//3.import属性:用于设置JSP页面导入的类包。使JSP页面可以插入java代码片段
<%@page import = "java.util.*"%>

//4.pageEccoding属性:用于设置JSP页面的编码格式,也就是指定文件编码。JSP页面中的所有代码都使用该属性指定 的字符集
<%@ page pageEccoding = "GB18030"%>

//5.contentType属性:用于设置JSP页面的MIME类型和字符编码
<%@page contentType = "text/html"; charset = "UTF-8"%>

//6.session属性:该属性指定JSP页面是否使用HTTP的session会话对象。属性值就是Boolean类型
<%@ page session = "false"%>

//7.buffer属性:用于设置JSP的out输出对象使用的缓存区大小,默认的时候为8KB
<%@ page buffer = "128kb"%>

//8.autoFlush属性:用于设置JSP页面缓存满时,是否自动刷新缓存。默认值是true;r
如果设置为false,则缓存被填满时将抛出异常
<%@ page autoFlush = "false"%>
//9.isErrorPage属性:可以将当前JSP页面设置成错误处理页面来处理另一个JSP页面的错误,也就是异常处理
<%@ page isErrorPage = "true"%>
//10.errorPage属性:用于指定处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面必须设置
isErrorPage属性为true。errorPage属性的属性值就是一个url字符串
<%@ page errorPage = "error//loginErrorPage.jsp"%>

include指令

通过该指令可以在一个JSP页面中包含另一个JSP页面。该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到该JSP页面中,即使里面有JSP代码,在包含也不会被编译执行,但是显示的文件结果会在那个包含文件结果的显示中

<%@ include file = "path"%>

//主文件
<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>
 <%@ page import = "java.util.Date" %>
 <%@ page import = "java.text.SimpleDateFormat" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>输出当前时间</title>
</head>
<body>
<%@ include file ="top.jsp"%>
<h3>当前时间</h3>
<%
Date date = new Date();
SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = df.format(date);
%>
<%=today %>
<%@ include file = "copyright.jsp" %>
</body>
</html>
//被包含的文件
<%@ page pageEncoding="GB18030"%>
<h2>世上无我这般人</h2>
//被包含的文件
<%@ page pageEncoding="GB18030"%>
<h2>手握日月摘星辰</h2>

taglib指令

在JSP文件中可以通过taglib指令标识声明该页面中所使用的标签,并指定标签的前缀。

<%@ taglib prefix = "tagPrefix" uri = "tagURI"%>

参数说明

prefix:用于指定标签的前缀,该前缀不能命名为jsp、jspx、java、javax、sun、servlet和sunw

uri:用于指定标签库文件的存放位置

脚本标识

脚本标识能够很方便、灵活生成页面中的动态内容,特别是Scriptlet脚本程序。

JSP表达式

JSP表达式用于向页面中输出信息

表达式:可以是任何java语言的完整表达式。该表达式的最终运算结果结果将被转换为字符串

<%= 表达式%>

<%String manager = "123";%>//定义保存变量
<%="数字:"+manager %>//输出结果:数字:123

声明标识

用于定义在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法可以被整个JSP页面访问,所以通常使用标识定义整个JSP页面需要引用的变量和方法

语法格式:

<%!声明变量或方法的代码%>

通过声明标识声明一个全局变量或全局方法
<%!
int number = 0; //声明全局变量
int count(){ //声明全局方法
number++; //累加
return number; //返回number值
}
%>

代码片段

代码片段就是在JSP页面中嵌入Java代码或脚本代码

<% java代码或脚本代码 %>

代码片段比使用灵活,功能是JSP表达式所不能实现的

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>九九乘法表</title>
</head>
<body>
<%
String str = "";
for(int i =1;i<=9;i++){
for(int j = 1;j<=i;j++){
str += j+"*"+i+"="+j*i;
str += "&nbsp";
}
str+="<br>";
}
%>
<%=str %>
</body>
</html>

JSP注释

由于JSP页面由HTML、JSP、Java脚本等组成,所以在其中可以使用多种注释格式

HTML中的注释

//代码注视

带有JSP表达式的注释

1.单行注释//

2.多行注释

/*
*
*
*/

3.文档注释

/**
*
*
*/

隐藏注释

查看源代码时是看不到的

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

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="GB18030">
<title>九九乘法表</title>
</head>
<body>
<%-- 计算开始--%>
<%
String str = "";
for(int i =1;i<=9;i++){
for(int j = 1;j<=i;j++){
str += j+"*"+i+"="+j*i;
str += "&nbsp";
}
str+="<br>";
}
%>
<%-- 计算完毕--%>
<%=str %>
</body>
</html>

动态注释

由于HTML注释对JSP嵌入的代码不起作用,因此可以利用他们的组合构成动态的HTML注释文本

<%-- <%=new Data()%>-->

动作标识

包含文件标识<jsp:include>

用于向当前页面中包含其他的文件。被包含的文件可以是动态文件或静态文件

语法格式:

<jsp:include page="url" flush = "false|true"/>
<jsp:include page="url" flush = "false|true">
子动作标识<jsp:param>
</jsp:include>

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>
 <%@ page import = "java.util.Date" %>
 <%@ page import = "java.text.SimpleDateFormat" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="GB18030">
<title>输出当前时间</title>
</head>
<body>
<jsp:include page="top.jsp"/>
<h3>当前时间</h3>
<%
Date date = new Date();
SimpleDateFormat df =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today = df.format(date);
%>
<%=today %>
<jsp:include page="copyright.jsp"/>
</body>
</html>

请求转发标识<jsp:forward>

可以将请求转发到其他的Web资源,例如另一个JSP页面、HTML页面、Servelt等。

请求转发后,当前页面不再执行,而是去执行标识指定的目标页面。

<jsp:forward page="url"/>
<jsp:forward page="url">
子动作标识<jsp:param>
</jsp:forward>

参数说明:

page:这里是指用于指定请求转发的页面

**子动作标识<jsp:param>**:用于向转向的目标文件中传递参数

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="GB18030">
<title>中转页</title>
</head>
<body>
<jsp:forward page="nine.jsp"></jsp:forward>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=GB18030"
 pageEncoding="GB18030"%>

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html"; charset="GB18030">
<title>九九乘法表</title>
</head>
<body>
<%-- 计算开始--%>
<%
String str = "";
for(int i =1;i<=9;i++){
for(int j = 1;j<=i;j++){
str += j+"*"+i+"="+j*i;
str += "&nbsp";
}
str+="<br>";
}
%>
<%-- 计算完毕--%>
<%=str %>
</body>
</html>

<jsp:param name = "参数名" value ="参数值"/>

可以作为其他标识符的子标识,用于传递参数

name:用于指定参数名称

value:设置对应的参数值

<jsp:forward page="url.jsp">
<jsp:param name="use" value="7"/>
</jsp:forward>

举报

相关推荐

0 条评论