1.作用:
- jsp用来在html中写java代码,服务器在执行jsp页面时,会将它转换为servlet类
2.指令标识
作用:设定相关信息。
1. 格式:<%@ 指令名 属性=“值”…%>
2. Page页面指令的属性:
- import:设置jsp导入的类包
<%@ page import="java.util.*" %>
- pageEncoding:设置编码(GBK显示中文简体和繁体)
<%@ page pageEncoding="GBK" %>
<%@ page contentType="text/html; charset=UTF-8" %>
- session :是否使用http的session会话对象
<%@ page session="false" %>
- isErrorPage:将当前JSP页面设置成错误页面
<%@ page isErrorPage="true" %>
- errorPage:处理当前错误页面的路径
<%@ page errorPage="error/loginErrorPage.jsp" %>
-
- autoFlush:jsp页面缓存满时,是否自动刷新缓存,,默认ture,如果设置为false,缓存满时抛出异常
<%@ page autoFlush="false" %>
- buffer:out输出对象使用的缓冲区大小,值为8的倍数,默认8kb
<%@ page buffer="128KB" %>
2.文件包含include指令:
<%@ include file="head.jsp" %>
3.引用taglib标签库JSTL:
<%@ tagbli predic="c" uri="http://java.sum.com/jsp/jstl/core"
3.表达式
作用:向页面输出信息
<% =java语言 %>
1. 声明标识:定义全局变量或方法
<%!
变量,方法.....
%>
2.代码片段
<%
java代码
%>
3.当查看源代码时看不到的安全注释
<% --注释内容-- %>
4.动作标识
1.包含文件jsp:include
<jsp:include page="url" flush="false|true" />
或
<jsp:include page="url" flush="false|true" >
<jsp:parame>
</jsp:inlcude>
- flush默认值为false,如果设置为true,先刷新缓存,在执行包含
- jsp:param:用于向被包含的页面传递参数
2.请求转发jsp:forward
<jsp:forward page="modify.jsp" >
<jsp:param name="userID" value="7">
</jsp:forward>
- 请求转发到modify.jsp页面的同时传递了参数
5.内置对象
作用:强大的对象处理能力
有以下可以直接使用的对象:
1.request:可以处理客户端浏览器提交的HTTP请求中的各项参数
- 获取请求参数
<%
request.getParameter("参数名"):
%>
-设置数据传递到要转发的页面
<%
request.setAttribute(String name,Object obj);
request.getAttribute(String name);
%>
- 获取cookie(用户信息,在网络服务器生成,以key/value的形式发送给浏览器并保存到客户的计算机某个指定的目录,用以标识用户身份,记录账号密码,跟踪用户)
- 解决得到的参数值乱码
<%=new String(request.getParameter("name").getBytes("ISO-8859-1"),UTF-8) %>
- 获取客户端信息
- 获取http发过来的本地所使用的语言
java.util.Locale locale=request.getLocale();
2.response:用于响应客户请求,向客户端输出信息
- 重定向网页:
<% response.sendRedirect("www.baidu.com"); %>
- 处理HTTP文件头:
a.禁用缓存(默认下,浏览器会对显示的网页内容进行缓存,对于一些安全性要求要高的网站来说需要禁用):
<%
response.setHeader("Cache-Control","no-stroe");
response.setDateHeader("Expires",0);
%>
b.页面自动刷新:
<% response.setHeader("refresh","10"); %>
c.定时跳转网页
<% response.setHeader("refresh","5;URL=login.jsp"); %>
- 设置输出缓存(缓冲区:(内存的一块区域)服务器要输出到客户端的内容是先一次性写到一个输出缓冲区,再直接写到客户端。原因是cpu访问内存的速度快,而内存的运行速度慢)
<% response.setBufferSize(32); %>
3.session:会话
- a.创建及获取客户的会话
<%
session.setAttribute(Srting name,Object obj);
session.getAttribute(String name).toString();
%>
- 移除存储在session中的对象:
<%
session.removeAttrbute(String name);
%>
- 销毁session
session.invalidate();
- 会话超时
session.setMaxInactiveInterval(10000)//秒;
4.application:用于保存所有应用程序中的公有数据,自服务器启动时创建,在服务器停止时销毁
5.out:用于在web浏览器内输出信息,也可以管理应用服务器上的输出缓冲区
- 向客户端输出数据
<% out.println("你好");%>
- 管理缓冲区
<%
out.clear();
out.flush();
out.isAutoFlush();//检测当前缓冲区已满时是自动清空,还是抛出异常
out.getBufferSize();
%>
6.exception:用来处理错误异常,并且必须设置当前文件的page isErrorPage=“true”
<%=exception.getMessage() %>
7.pageContext:用于访问jsp内置对象
8.config:用于读取web.xml配置信息
9.page:代表jsp本身