5、第2篇 JSP语言基础之----JSP基本语法

对应于书本第5章

总结:JSP在服务器端执行。

JSP是什么?
传统的HTML文件中加入java代码段形成JSP(Java Server Pages)文件。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP结构?
JSP可以包含指令标识、动作标识、html代码、JavaScript代码、Java代码等等。

指令标识

作用:设定整个JSP的信息
语法:

<%@ 指令名 属性1=”值1” 属性2=”值2”…….%>
JSP中指令有:page、include、taglib三个

多个属性可以一起写,也可以分开写

page指令:
属性有:language、extends、import、pageEncoding、contentType、session、buffer、autoFlush、isErrorPage、errorPage等。
例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" import="java.util.*"%>
<%@ page import="java.text.SimpleDateFormat"%>

session属性:该JSP页面是否使用session,true表示用,false表示不用。
session是JSP内置对象
<%@ page session="false"%>
buffer属性:设置JSP的out输出对象的缓冲区大小,默认为8KB,一般都是8的倍数如163264等
<%@ page buffer="128kb"%>
autoFlush属性:JSP页面缓存满时是否自动刷新
<%@ page autoFlush="false"%>
isErrorPage属性:是否将当前JSP页面设置为错误处理页面
<%@ page isErrorPage="false"%>
errorPage属性:指定该页面错误时应转到哪个错误处理页面
<%@ page errorPage="error/loginErrorPage.jsp"%>

include指令:
文件包含指令,在某个JSP文件中包含另一个JSP文件,是静态包含。
什么是静态包含?就是相当于代码分开写在两个文件中,包含进来再一起执行。而动态包含里有页面的跳转。
包含和被包含文件不能有相同的变量
要求:html、head、body等标记只写在主文件中,被包含文件中不要写。
语法:

<%@ include file="被包的文件名,可以是完整路径表示"%>
例:
<body style="margin:0px;">
<%@ include file="top.jsp"%>
<table width="781" height="279" border="1" cellpadding="0" cellspacing="0" background="images/center.JPG">
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
<%@ include file="copyright.jsp"%>
</body>

此代码即是导入了两个被包含文件

taglib指令:
作用:声明该页面中使用的标签库,同时引用标签库,并指定标签的前缀。在页面引用标签库后,就可通过前缀来引用标签库中的标签。

语法:
<%@ taglib prefix="标签的前缀" uri="标签库文件的位置" %>
例如,引用JSTL的核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

脚本标识

有三种:

<%= 表达式 %>
<%! 声明变量或方法的代码 %>     // JSP页面中定义全局的变量或方法
<% Java代码或脚本代码 %>

JSP注释

Java或JavaScript部分:// 或/*   */
html部分: 一般<!--   -->,隐藏注释<%--   --%>

动作标识

三个:

<jsp:include>
<jsp:forward>
<jsp:param>

(1)

<jsp:include>,包含文件,可以是静态文件也可是动态文件

语法:
<jsp:include page="被包文件" flush="false/true" />
或
<jsp:include page="被包文件" flush="false/true" >
   子动作标识<jsp:param>
</jsp:include>

说明:flush:可选属性,用于设置是否刷新缓冲区,默认为false
子动作标识<jsp:param>:用于向被包含的动态页面中传递参数

<body style="margin:0px;">
<jsp:include page="top.jsp"/>
<table width="781" height="279" border="1" cellpadding="0" cellspacing="0" background="images/center.JPG">
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
<jsp:include page="copyright.jsp"/>
</body>

比较:
前面讲的include指令与动作啥区别?

指令的file属性不支持任何表达式,而include动作的page属性支持JSP表达式;
include指令相当于是代码分开写但是一起执行,而动作是分别编译执行;
include指令的两个文件中不能有重名的变量或方法,include动作因为是单独编译的所以主文件和被包文件没有冲突。

(2)

<jsp:forward>

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

例子:
有两个文件index.jsp 和login.jsp
其中index.jsp如下:

<html>
<head>
<title>中转页</title>
</head>
<body>
<jsp:forward page="login.jsp"/>
</body>
</html>

(3)传递参数标识

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

例:通过jsp:param为jsp:forward指定参数

<jsp:forward page="modify.jsp">
    <jsp:param name="userId" value="7"/>
</jsp:forward>

最后课后练习,里面有几行代码还要理解

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <base href="<%=basePath%>">
    </head>
    <body>
    </body>
</html>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值