Java Web入门之JSP的基本语法解析及实战(超详细 附源码)

创作不易觉得有帮助请点赞关注收藏~~~

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+="&nbsp;";
	
	}
	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="&nbsp;All Copyright &copy; 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>&nbsp;</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+="&nbsp;";
	
	}
	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>
密&nbsp;&nbsp;码:<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>

创作不易觉得有帮助请点赞关注收藏~~~

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

showswoller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值