jsp脚本格式:
1.<%..%> java代码片段
2.<%=..%> 输出表达式 相当于out.print();
3.<%!...%> 声明成员
jsp的指令
作用:声明jsp页面的一些属性和动作格式:
<%@指令名称 属性="值" 属性="值"%>
jsp指令的分类:
page:主要声明jsp页面的一些属性(一般IDE工具都会帮我们生成)
include:静态包含.
代码展示:
taglib:导入标签库
注意:
一个页面中可以出现多个指令
指令可以放在任意位置,一般都放在jsp页面最上面.
指令详细:
page指令:
重要属性:3个
contentType:设置响应流的编码,及通知浏览器用什么编码打开.设置文件的mimetypepageEncoding:设置页面的编码
import:导入所需要的包
contentType和pageEncoding联系:
若两者都出现的时候,各自使用各自的编码
若只出现一者,两个都使用出现的这个编码
若两者都不出现,使用服务器默认的编码 tomcat7使用的iso-8859-1
了解属性:
language:当前jsp页面里面可以嵌套的语言buffer:设置jsp页面的流的缓冲区的大小
autoFlush:是否自动刷新
extends:声明当前jsp的页面继承于那个类.必须继承的是httpservlet 及其子类
session:设置jsp页面是否可以使用session内置对象
isELIgnored:是否忽略el表达式
errorPage:当前jsp页面出现异常的时候要跳转到的jsp页面
isErrorPage:当前jsp页面是否是一个错误页面
若值为true,可以使用jsp页面的一个内置对象 exception
page指令代码:
include指令:
静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译运行.生成一个java文件.格式:
<%@include file="相对路径或者是内部路径" %>
例如:
<%@include file="/jsp/include/i1.jsp" %>
路径:
相对路径:
./或者什么都不写 当前路径
上一级路径 ../
绝对路径:
带协议和主机的绝对路径
不带协议和主机的绝对路径
/项目名/资源
内部路径:
不带协议和主机的绝对路径去掉项目名
请求转发 静态包含 动态包含
include指令展示:
taglib指令:导入标签库:
格式:<%@taglib prefix="前缀名" uri="名称空间" %>
若导入之后
<前缀名:标签 .. >
例如 导入jstl标签库:
<c:if test="">输出内容</c:if>
jsp的动作标签:
<jsp:forward>:请求转发 相当于java中 request.getRequestDispatcher(..).forward(..);<jsp:forward page="内部路径"></jsp:forward>
<jsp:include>:动态包含
就是将被包含页面或者servlet的运行结果包含到当前页面中.
一般只会在model1设计模式中使用(缺点:阅读起来不方便,维护比较困难)
<jsp:useBean>接受值 相当于 User u=new User() new对象
<jsp:useBean id="u" class="com.itheima.domain.User"></jsp:useBean>
<jsp:setProperty>相当于 u.setName(...) 设置参数
<jsp:setProperty property="name" name="u"/>
<jsp:setProperty property="password" name="u"/>
<jsp:getProperty>打印值 打印参数
<jsp:getProperty property="name" name="u"/>