javaweb(08) jsp(了解)
jsp简介
简介
- Java Server Page
- jsp本质是一个Servlet,Servlet能做的事情jsp都能做
- jsp能够以HTML页面的方式呈现数据,是一个可以嵌入java代码的HTML
- jsp不同于HTML,不能使用浏览器直接打开,而必须运行在Servlet容器上
运行原理
基本语法
jsp模板元素
- jsp页面的静态HTML内容称之为jsp模板元素,在静态的HTML内容之中可以嵌套jsp的其它各种元素来产生动态内容和执行业务逻辑
- jsp模板元素定义了网页的基本骨架,即定义了页面的结构和外观
- 会被原封不动的翻译到java代码里,传入out.write()里
jsp表达式
- 用于在页面输出内容
- 表达式里面的所有内容都是被传参进out.print();里,所以参数能怎么写就怎么写
<%= new Date()>
jsp脚本片段
- 在脚本片段里写java代码
- 向页面输出内容:out.print("")
- 脚本片段会被原封不动的复制到.java文件里
- 脚本片段可以写多个,还可以拆分写多个,但合起来必须是完整的
<%
int age = 16;
if(age >= 18){
out.print("<br/>给你一本jsp从入门到放弃<br/>");
}else{
out.print("<br/>编程从娃娃抓起<br/>")
}
%>
jsp声明
- <%! 代码 %>
- jsp声明里面的代码都会写在jsp的service方法之外,写在.java类里面,比较少用。
jsp注释
jsp原文件 | .java文件 | 返回的HTML页面 | |
---|---|---|---|
<%–jsp注释–%> | 可见 | 不可见 | 不可见 |
<!–HTML注释–> | 可见 | 可见 | 可见 |
//java注释 | 可见 | 可见 | 不可见 |
<%–jsp注释–%>翻译成.java文件时被忽略
<!–HTML注释–>浏览器输出时会被忽略
//java注释 编译成.class文件时被忽略
jsp指令
- jsp指令是为jsp引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理jsp页面中的其余部分。
- <%@ 指令名 属性名=属性值 %>
- page指令:定义页面是如何解析的
- include指令:静态包含
- taglib:在页面引入标签库
page指令属性
- import:用来在页面导包
- pageEncoding:指定页面使用的字符集,也是告诉jsp引擎使用指定的编码翻译
- contentType:设置响应头,页面如何响应给浏览器
- errorPage:指定页面发生错误去向的页面
- isErrorPage:表示当前页面是一个错误页面
- session:默认session=“true”,当前页面是否参与会话,是否可以使用session对象
- isELIgnored:是否忽略el表达式,默认false表示不忽略
- info:定义页面的信息(描述)
静态包含
- <%@ include file="" %>
- 静态包含是把包含的页面内容原封装不动的输出到包含的位置。
jsp标签
动态包含
- <jsp:include page=""></jsp:include>
- 动态包含会把包含的 jsp 页面单独翻译成 servlet 文件,然后在执行到时候再调用翻译的 servlet 程序。并把 计算的结果返回。
- 动态包含是在执行的时候,才会加载。所以叫动态包含。
页面转发
- <jsp:forward page=""></jsp:forward>
- <jsp:forward 转发功能相当于 request.getRequestDispatcher("/xxxx.jsp").forward(request, response); 的功能
jsp九大内置对象
内置对象:在页面上直接可以使用的内置对象
五大常规对象
四大域对象
- 域对象用于共享数据
-
说明:
- 对比: