1、先讲9个内置对象。
①、request:
用于封装客户端的请求信息,然后才能传递到后台功服务端进行处理,是httpservletrequest的实例。
②、response:
用于响应,包含了响应客户端请求的有关信息,是httpservletresponse的一个实例。
③、page:
page对象就是指当前jsp页面本身,有点类似与this指正,是Object类的实例。
④、pageContext:
该对象提供了对jsp页面内所有对象以及名字空间的访问,也就是说他可以访问到本页所在的session,
可以看作页面所有功能的集大成者。
⑤、config:
config对象是在一个servlet初始化时,jsp引擎向jsp传递的参数,包括服务器有关信息以及初始化所需要的参数。
⑥、session:
session对象是指客户端与服务器的一次回话,从客户端连接到服务器的webapplication开始,直到客户端与服务器端断开为止。
他是httpsession的一个实例。
⑦、exception:
错误对象,只有当isErrorPage=true时候,才能成功编译。是throwable的一个对象。
⑧、out:
用于页面输出流,是jspwriter的一个常用对象。
⑨、application:
服务器的相关对象,一个web应用只有一个application,可实现用户间数据共享,范围最大,服务器开启时生存状态开始,关闭时生存状态结束。
是servletcontext的一个实例。
2、再说三大指令:
①、page指令:
②、taglib指令:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>prefix:指定标签前缀,这个东西可以随意起名uri:指定第三方标签库的uri(唯一标识)当然,需要先把第三方标签库所需jar包放到类路径中。
③、include指令:
3、七个动作:语法:<%@include file="页面"%>include指令的作用是包含指定的页面!在jsp被编译成java文件之前会把两个jsp文件合并,然后再编译成一个java文件。
注意:<%@include file="<%=myfile%>" %>这是不能通过编译的,因为myfile是一个变量,它的值只有在java编译成class后执行时才能确定。而include指令需要在jsp编译java时就要确定包含的是哪个页面(因为要编译成一个class文件)。
(1)JSP:forward 执行页面转向,将请求的处理转发到下一个页面。
法①、<jsp:forward page="/servlet/login" />直接跳转不带参数 法②、<jsp:forward page="/servlet/login"> <jsp:param name="username" value="jsmith" /> </jsp:forward> 带参数跳转,可以带多个。
(2)JSP:param 用于传递参数,必须!与其他支持参数的标签一起使用:例子如上
(3)JSP:include 用于动态引入一个JSP页面:
属于动态包含。 如果包含一个jsp时候,就会生存2个servlet 而包含一个html时,只会生成一个servlet。 <jsp:include page="xxx.html"flush="true"/> 而<@include>属于静态包含,包含html或者jsp时候,都只生成一个servlet
(4)JSP:plugin 用于下载JavaBean或者Applet到客户端执行
执行一个applet或Bean,有可能的话还要下载一个Java插件用于执行它. <jsp:plugin type=applet code="xxx.class" codebase="/html">
(5) JSP:useBean 创建一个Javabean实例
在jsp页面下创造一个bean实例,可以制定实例生存范围。例如:
<jsp:useBean id="id" scope="page|request|session|application" typeSpec/>
(6) JSP:setProperty 设置JavaBean实例的属性值
第一种类型,精确匹配,在后端接受表单参数,并由服务器引擎自动填装bean实例:
如果后面property属性是*,就是只填充所有,如果属性为特定名字,则只填充特定表单值。
<jps:setProperty name = "JavaBean实例名" property = "*"/>
第二种类型,后面加value参数,制定属性值。
<jsp:setProperty name = "JavaBean实例名" property = "JavaBean属性名" value = "BeanValue"/>
(7)JSP:getProperty 获取JavaBean实例的属性值
如下例子:
<h2>姓名:<jsp:getProperty name="xxx" property="name"/></h2>