JSP
JSP的注释
显示注释,这种注释是允许客户端看见的;
隐式注释,此种注释是客户端无法看见的
① 显示注释语法:从 HTML 风格继承而来
② 隐式注释语法:从 JAVA 风格继承;JSP 自己的注释
JSP 的三种注释方式:
1) // 注释,单行注释 /* 多行注释*/
2)
3)<%-- JSP注释 --%>
Scriptlet脚本段
JSP中一种有三种Scriptlet(脚本小程序):
1、Java脚本段:<% %>
可以声明局部变量;生成的代码在servlet的service方法体中
2、声明:<%! %>
可以声明全局变量、方法、类;生成的代码在Servlet类体中
3、输出表达式:<%= %>
可以输出变量或字面量;生成的代码在servlet的service方法体中
<%
int a = 1; // 定义局部变量
int b = a + 10;
// int aa = 1/0;
%>
<%!
int c = 1; // 全局变量
%>
<%=a %>
<br>
<%=a+b %>
<br>
<%=100 %>
Page指令
JSP 的指令标签用来控制整个 jsp 的行为,就当前 JSP 页面的某些方面对 JSP 转换器作出指示。
page指令
格式:<%@ page 属性名=“属性值” 属性名=“属性值” %>
常用属性:
language:支持的语言,目前只支持Java
contentType:设置响应MIME类型及编码格式
pageEncoding:编码格式
页面的编码格式会以contentType属性中的charset的值为准,若charset未设置,则使用pageEncoding的属性值,若两者都未设置,则使用默认编码ISO-8859-1
import:导包;在page指令中只有该属性可以设置多次
isErrorPage:是否是处理错误的页面,默认为false,一般与errorPage结合使用
errorPage:当页面报错跳转的路径,一般与isErrorPage结合使用
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="java.util.*" isErrorPage="false" %>
<!DOCTYPE html >
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html >
include静态包含
include静态包含
格式: <%@include file=“被包含资源的路径” %>
特点:
相当于将页面的内容进行直接的复制,只会生成一个源码文件。
不能出现同名变量。
运行效率高一点点。耦合性较高,不够灵活。
主页:
<%@include file="head.jsp" %>
<h2>主页面</h2>
<%@include file="foot.jsp" %>
头: 该JSP的名字叫: heda.jsp
<body>
<h3>我是头部</h3>
<%
int a = 1;
%>
</body>
底: 该JSP的名字叫:foot.jsp
<body>
<h3>我是底部</h3>
<%
// 接收参数
String uname = request.getParameter("uname");
out.print(uname);
// out.print(request.getParameter("upwd"));
%>
<%=request.getParameter("upwd") %>
</body>
include动态包含
格式:<jsp:include page=“要包含的资源路径”></jsp:include>
特点:
相当于方法的调用,会生成多个源码文件,可以出现同名变量。
注:
1、jsp:include双标签中不能有任何内容,包括换行和参数(除非有参数)
2、page属性支持表达式
3、动态包含可以设置参数,<jsp:param name=“参数名” value=“参数值” />
name属性不支持任何表达式
The name attribute of the jsp:param standard action does not accept any expressions
value属性支持表达式
<jsp:include page="<%=url %>"></jsp:include>
<jsp:include page="head.jsp"></jsp:include>
<h2>这是主页面!</h2>
<jsp:include page="foot.jsp"></jsp:include>
<jsp:include page="foot.jsp">
<jsp:param value="<%=uname %>" name="uname"/>
<jsp:param value="123456" name="upwd"/>
</jsp:include>
九大内置对象
四个域对象:
page范围pageContext : 只在一个页面中保存属性,跳转之后无效
request范围request : 只在一次请求中保存,服务器跳转后依然有效
session范围session : 在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用
application范围application : 在整个服务器上保存,所有用户都可以用
// pageContext 当前页的域对象:只在当前页面有效,跳转后无效
pageContext.setAttribute("uname", "zhangsan");
// request 请求域对象:只在一次请求中页面,服务器跳转有效
request.setAttribute("uname2", "lisi");
// session 会话:只在一次会话中有效,客户端和服务端跳转后都有效,session销毁后失效
session.setAttribute("uname3", "wangwu");
// application 应用对象:在整个项目中都有效,服务器关闭或重启后失效
application.setAttribute("uname4", "zhaoliu");
/* JSP 中两个输出对象 response、 out */
// response 响应对象
response.setContentType("text/html;");
// out 输出流
out.print("输出...");
/* JSP中的配置对象 config */
config.getServletContext();
/* JSP中的异常对象 exception :只有当前页面的page指令中isErrorPage=true时,才可使用 */
/* 其他对象 this 指代JSP页面本身 */