JSP的出现,主要是简化了对页面的输出。其本质是一个servlet。
- JSP概念
- JSP语法
- 3个指令
- 6个动作标签
- 9个内置对象
一、JSP概念
JAVA服务器页面 ,可以写HTML,也可以写JAVA代码。会自动把标签打印到页面,可以简化书写。JSP本质上是一个servlet。包含内容可以概括成:
- 3个指令
- 6个动作标签
- 9个内置对象
二、JSP语法
- 脚本:用于标识JAVA代码的
- <%!….%>:定义全局成员(定义在类中,方法外)
- <%…..%>:定义局部成员的(定义在service方法中)
- <%=….%>:定义输出语句(打印在页面上)
- 注释
<%–……–%>:里面的注释不会显示在页面上,可以注释JSP脚本
三、3个指令
- 作用
- 指令用于配置JSP文件的信息;
- 用于加载一些资源
- 指令格式
<%@ 指令名称 属性名=“属性值” %>
指令分类
page:用于配置JSP文件的信息;
- language:用于指定服务器立端使用的语言环境,就一个值JAVA
- import:用于导包,可以定义多个包
- pageEncoding: 指定页面编码
- contentType:告诉浏览器,当前页面的编码方式
- autoFlush:自动刷新缓冲区
- buffer:response输出流的缓冲区大小,默认8KB
- errorPage:指定错误页面的路径。在XML中,通过
<errorPage>
来指定错误页面,如:
<%@ page language="java" import="java.util.*,java.io.InputStream" pageEncoding="utf-8" autoFlush="true" buffer="8kb" errorPage="500.jsp"%>
include:用于包含
<%@ include file="b.jsp"%>
- taglib:加载一些资源文件
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
四、6个动作标签
动作标签的作用是用来简化java脚本。
<java:useBean >
相当于是建立了一个对象<java:setProperty>
相当于类中的set方法<java:getProperty>
相当于类中的get方法
//1.正常的类中创建一个对象,赋值,取出的过程
User user = new User();
user.setUsername("zhangsan");
out.print(user.getUsername());
//2.jsp中动作标签的方法
<java:useBeam id="user" class="com.skystone.domain.User">//创建user对象,其实用的是反射的方法
<java:setProperty name="user" property="username" value="lisi">//向成员变量username中赋值
<java:getProperty name="user" property="username" >//通过get得到值,会打印到页面上
<java:include>
动态包含,先生成两个类,再把结果合并<java:forward>
要跳转的页面<java:param>
跳转时,要传递的参数值
<jsp:forward page="/result.jsp" >//转向result页面
<jsp:param value="zhangsan" name="username"/>//传递参数
</jsp:forward>
五、9个内置对象
在JSP转换为的servlet中的service方法中初始化好的对象。在jsp中可以直接使用
- application :ServletContext
- session:HttpSession
- request:HttpServletRequest
- pageContext:PageContext
- 域对象,域的范围,当前页面
- 获取其它八个内置对象
- response:HttpServletResponse
- out:response的输出流等价
- page:就是this,当前对象
- exception:异常对象,Throwable
- config:ServletConfig对象
out与response.write()的区别
- 区别:当服务器响应之前,会先将out缓冲区的数据刷新到response中,再从response缓冲区获取数据。作出响应。
- 结论:两个不要一起使用,
六、JSP应用理念
- jsp页面中一定不要写java代码(为了后期的可维护性和代码的简洁性)
- jsp开发时,要遵循MVC和javaweb的三层结构