一、了解jsp页面
eg:显示系统当前时间的jsp页面
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>显示时间的jsp页面</title>
</head>
<body>
<%
//获取日期对象
Date date = new Date();
//设置日期格式
SimpleDateFormat df = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
//获取当前系统的时间
String today = df.format(date);
%>
当前时间为:<%=today %> <!-- 输出系统时间 -->
</body>
</html>
运行结果:
1.指令标识:
定义:指令标识主要用于设定在整个jsp页面范围内的有效信息,它是被服务器解释并执行的,不会产生任何内容输出到网页。
语法:
<%@指令名 属性名1=“属性值1” 属性2=“属性值2” …%>
参数说明:
指令名包括3条指令:page、taglib、include。
1.1 page常用的属性
language:设置jsp语言,目前只支持Java。
extends:设置jsp页面继承的Java类。
import:设置jsp导入的类包。
pageEncoding:设置jsp的编码格式。
contentType:设置jsl页面的类型和字符编码。
session:设置jsp是否使用session会话对象。
1.2 include指令
定义:通过该指令可以在一个jsp页面中包含另一个jsp页面。不过是静态包含。(好处:大大提高代码的重用性)
ag:<%@include file=“xx.jsp” %>
1.3 taglib指令
定义:可以通过该指令标识声明该页面中所使用的标签库。
ag:<%@taglib prefix=“前缀命名” uri=“文件存放位置” %>
二、脚本标识
2.1 jsp表达式
语法:<%=表达式%>
运行截图:
2.2声明标识
定义:用于在jsp页面中定义全局的变量或者方法。
语法:<%! 声明变量或者方法的代码 %>
2.3 代码片段
<% 代码片段 %>
三、注释
3.1 HTML注释:
< !-- 注释 – >
3.2 jsp注释:
单行注释
多行注释
隐藏注释:在浏览器查看源码时,也看不见。<%-- 注释 --%>
四、动作标识
4.1 包含文件标识 < jsp:include >
定义:通过此标识可以向当前页面中包含其他文件。
4.2 请求转发标识 < jsp:forward >
定义:转发到其他的web资源,比如:另一个jsp、html、servlet等。
4.3 传递参数标识 < jsp:param >
格式: <jsp: param name=“参数名” value=“参数值”>
五、jsp内置对象
定义:也可以成为隐含对象,这些对象不需要在所有的jsp页面中都进行实例化就可以直接使用,从而起到了简化页面的作用.
5.1 request对象
定义:request对封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息、系统信息、请求方式和请求参数等。通过request对象提供的方法可以处理客户端浏览器提交的HTTP请求的各项参数。
5.1.1 访问请求参数
eg:< a href=“deal.jsp?id=1”>删除< /a>
说明:本实例中,设置一个请求参数。如果要同时使用指定多个参数,那么各参数间使用“&”即可。
index.jsp
deal.jsp
运行结果:
5.1.2 在作用域中管理属性
在请求转发时,需要把一些数据传递到转发后的页面进行处理。
语法格式:
request.setAttribute(String name,Object object);
参数说明:
name:标识变量名,为String类型。在转发后的页面中,就是通过这个变量名来获取的。
object:用于指定需要request范围内传递的数据,为object类型。
在将数据保存到request范围内的变量中,可以通过request对象的getAttribute()方法获取该变量的值。
语法格式:
request.getAttribute(String name);
eg:通过setAttribute()方法保存变量,并且应用request对象的getAttribute()方法读取request范围内的变量。
index.jsp
deal.jsp
运行结果:
5.1.3 获取cookie(不是内置对象)
定义:cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器。通过cookie可以标识用户身份,记录用户名和密码,跟踪用户重复等。浏览器将cookie以key/value的形式保存到客户机的某个指定目录。
方法:
getCookies():获取到所有cookie对象的集合。
getName():获取到指定名称的cookie。
getValue():获取到cookie对象的值。
eg:通过cookie保存并读取用户登录信息。
date.jsp
deal.jsp
运行结果:
5.2 response对象
定义:用于响应客户请求,向客户端输出信息,它封装了jsp产生的响应,并发送到客户端以响应客户端的请求。
5.2.1 重定向网页
定义:使用response对象提供的sendRedirect()方法可以将网页重定向到另一个页面。
语法格式:
response.senRedirect(String path);
5.2.2 处理HTTP文件头
1.禁用缓存
<%
response.setHeader(“Cache-Control”, “no-store”);
response.setDateHeader(“Expries”, 0);
%>
2.设置页面自动刷新
<%
response.setHeader(“refresh”, “10”);//每隔10秒自动刷新
%>
3.定时跳转网页
<%
response.setHeader(“refresh”, “5;URL=login.jsp”);//5秒后自动跳转到login.jsp页面
%>
5.3 session对象
定义:session在网络中被称为会话。HTTP协议是一种无状态协议,也就是当一个客户端向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。而通过session可以当用户在应用程序web页面进行跳转时,保存用户的状态,使整个用户会话一直存下去,直至关闭浏览器。
5.3.1 创建及获取客户的会话
1.setAttribute()方法
格式:
session.setAttribute(String name,Object object)
2.getAttribute()方法
格式:
session.getAttribute(String name)
5.3.2 从会话中移动指定的绑定对象
removeAttribute()方法:
格式:
session.removeAttribute(String name)
5.3.3 销毁session
格式:
session.invalidate();
eg:
index.jsp
session.jsp
result.jsp
运行截图:
5.4 application对象
定义:用于保存所有应用程序中的公有数据。在服务器启动时自动创建,在服务器停止时销毁。当没有被销毁时,所有用户可以共享application对象,与session相比,他的生命周情况更长。
方法:
1.getInitParameter()方法:返回一个已命名的参数值。
格式:
application.getInitParameter(String name);
2.getAttributeNames()方法:返回所有已定义的应用程序初始化参数的枚举。
格式:
application.getAttributeNames();
3.getAttribute(String name):从application对象中获取指定的对象名。
4.setAttribute(String name,Object obj):使用指定名称和指定对象在application对象中进行关联。
5.removeAttribute(String name):从application对象中去掉指定名称的属性。
5.5 Out对象
1.print()方法
2.println()方法
管理响应冲突
out对象的另一个比较重要的功能就是对缓冲区进行管理。
5.6 其他内置对象
1.获取会话范围的pageContext对象
2.读取web.xml配置信息的config对象
3.应答或请求的page对象
4.获取异常信息的exception对象