JavaWeb之JSP入门
JSP原理及执行过程
1、流程图分析
用户发起请求,用户通过浏览器访问jsp页面,浏览器将HTTP协议的请求部分发送到服务端.
服务端获取请求部分,分析请求,发现本次的请求的的是jsp页面,jsp引擎按照内部规定,将jsp页面转换为一个servlet文件,并生成java文件,index_jsp.java, 转换后的java文件中有init,service,destroy方法,在service方法中,将HTML标签原封不动输出到浏览器中,碰到java代码,复制到service方法中
JSP如何出现
如果开发中直接使用servlet对客户端响应,是难以维护的,因为它把html标签全部写到java文件中,更改一个小的部件,就要修改servlet文件.
JSP语法
1.JSP脚本段
1.1 存放定义型的语句
<%! %>
1.2 普通的Java语句
<% %>
1.3 可以计算出结果的表达式
<%= %>
2.JSP的注释
<%-- JSP的注释 --%>
注意:JSP中实现注释,优先使用JSP注释,效率高,转换为servlet的时候,不需要处理
3.JSP指令
3.1 指令格式
<%@ 指令名称 属性名1=”属性值1” 属性名2=”属性值2” 属性名3=”属性值3” %>
3.2 指令的分类(3个)
page:告诉JSP引擎如何将当前JSP转换为Servlet
import=”cn.itcast.domain.Product 导入其他JAVA对象
language=”java”: 如果JSP中出现脚本,采用的语言类型,目前仅支持JAVA
contentType=”text/html;charset=UTF-8″:告诉浏览器,本次响应内容类型和编码
pageEncoding=”UTF-8″ :告诉JSP引擎,当前页面采用的编码格式
autoFlush=”true”: 是否自动刷新 buffer=”8kb”: response缓存区大小
session=”true”: 如果获取不到sessionid是否创建session
errorPage=”error.jsp”: 当前页面发生错误之后,处理错误页面
isErrorPage=”true”:当前页面是错误页面 include:包含其它文件
taglib:引用其它的标签库
3.3 内置对象(9个)
application
config
JSP相当于servlet可以为servlet配置参数,也可以为JSP配置参数
out
2个out不是同一个对象,response对应的out优先级高
JSP中默认使用内置的out对象
request
response
session
exception
需要将当前页面的page指令下设置isErrorPage=”true”才能使用
作用:开发阶段,通过JSP中获取exception中的信息判断JSP出错异常信息
pageContext
获取其它8个内置对象
当作域对象使用
操作其它域对象
pageContext.findAttribute(name)
pageContext>request>session>application
page
代表this(当前访问的servlet) 3.4 JSP域对象
pageContext
request
session
application 3.5 JSP动作
<jsp:forward page=""></jsp:forward> <jsp:include page=""></jsp:include>