JavaWeb之JSP入门
JSP原理及执行过程
- 流程图分析
- 用户发起请求,用户通过浏览器访问jsp页面,浏览器将HTTP协议的请求部分发送到服务端.
- 服务端获取请求部分,分析请求,发现本次的请求的的是jsp页面,jsp引擎按照内部规定,将jsp页面转换为一个servlet文件,并生成java文件,index_jsp.java,
转换后的java文件中有init,service,destroy方法,在service方法中,将HTML标签原封不动输出到浏览器中,碰到java代码,复制到service方法中
JSP如何出现
如果开发中直接使用servlet对客户端响应,是难以维护的,因为它把html标签全部写到java文件中,更改一个小的部件,就要修改servlet文件.
JSP语法
-
JSP脚本段
- 存放定义型的语句
<%! %>
- 普通的Java语句
<% %>
- 可以计算出结果的表达式
<%= %>
-
JSP的注释
<%-- JSP的注释 --%>
- 注意:JSP中实现注释,优先使用JSP注释,效率高,转换为servlet的时候,不需要处理
-
JSP指令
-
指令格式
<%@ 指令名称 属性名1=”属性值1” 属性名2=”属性值2” 属性名3=”属性值3” %>
-
指令的分类(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:引用其它的标签库
- page:告诉JSP引擎如何将当前JSP转换为Servlet
-
内置对象(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)
-
JSP域对象
- pageContext
- request
- session
- application
-
JSP动作
<jsp:forward page=""></jsp:forward> <jsp:include page=""></jsp:include>
-
http://blog.xueyao.me