发表于: 2017-05-07 20:41:16
1 1217
今天完成的事情:学习了JSP的知识
1.引入
JSP基于Servlet,使用java+html开发动态资源。
特点:
JSP的运行必须交给Tomcat,Tomcat的work目录:jsp运行时的临时文件;
JSP页面既可以写html,也可以写java。
JSP执行过程:访问 http://localhost:8080/day12/01.hello.jsp
1)访问01.hello.jsp页面,tomcat在%tomcat%/work把jsp文件翻译成java源文件(翻译)
2)tomcat把java源文件编译成class字节码文件(编译)
3)tomcat构造_01_hello_jsp对象
4)tomcat调用_01_hello_jsp类方法,返回内容到浏览器
第一次访问jsp: 1)2)3)4) 第n次访问jsp: 4) 注:jsp文件修改或jsp临时文件被删除,重走1)2)
结论:
JSP就是一个servlet程序
servlet技术可以用在jsp程序中
jsp技术并不完全适用于servlet
2.JSP生命周期
1)翻译:jsp——>java 2)编译:java——>class 3)构造方法(第一次访问) 4)init方法(第一次访问):_jspInit() 5)service方法:_jspService() 6)destroy方法:_jspDestroy()
3.JSP语法
3.1 JSP模板:jsp页面中的html代码就是jsp模板
3.2 JSP表达式:
语法:<%=变量或表达式%>
作用:向浏览器输出变量的值或表达式结果
注意:
1.表达式的原理就是翻译成out.print("变量")
2.表达式不需要以分号结束
3.3 JSP脚本:
语法:<% Java代码 %>
作用:执行java代码
原理:把脚本中代码拷贝到_jspService方法中执行
3.4 JSP的声明:
语法:<%! 变量或者方法%>
作用:声明jsp变量或方法
注意:变量翻译成成员变量,方法翻译成成员方法
3.5 JSP的注释:
语法:<%!--注释--%>
注意:html的注释会被翻译或执行,jsp注释不能被翻译或执行
4.JSP三大指令
4.1 include指令
作用:在当前页面用于包含其他页面
语法:<%@include file="common/header.jsp" %>
注意:
1)原理是把被包含的页面(header.jsp)的内容翻译到包含页面(index.jsp)中,合并或翻译成一个java源文件,再编译运行!(静态包含)
2)如果使用静态包含,被包含页面中不需要出现全局的html标签!!!(如html,head,body)
4.2 page指令
作用:告诉tomcat如何翻译jsp文件
语法:
<%@page language = "java" //翻译jsp文件的动态语言
import = "java.util." //导入包,多个包用,分隔
pageEncoding = "utf-8" //翻译jsp文件的编码
contentType = "text/html;charset = utf-8" //服——>浏的数据类型和内容编码 //在开发工具中,只需设置pageEncoding即可解决中文乱码
errorPage = "error.jsp" //指定错误处理页面
isErrorPage = "false" //指定当前页面为错误处理页面
buffer = "8kb" session = "true" isELIgnores = "false"
5.内置对象(重点)
JSP中不需要创建,直接可以用的对象
5.1 九大内置对象:
内置对象 类型
-------------request HttpServletRequest
response HttpServletResponse
(servlet) config ServletConfig
application ServletContext
--------------session HttpSession
exception Throwable
page Object
* out JspWriter
* pageContext PageContext
5.2 out对象
JspWriter类,相当于带缓存的PrintWriter
PrintWriter:writer(内容):向浏览器写出内容
JspWriter:writer(内容):向jsp缓存区写出内容
当满足以下条件之一,缓存区内容写出:
缓存区满了
刷新缓存区
关闭缓存区
执行完毕jsp页面
5.3 pageContext对象(上下文对象)
1)可以获取其他八个内置对象
使用场景:在自定义标签的时候,PageContext对象频繁使用到!!!
2)本身是一个域对象
作用:保存和获取数据,用于共享数据
保存数据:
默认保存到page域,pageContext.setAttribute("name");
可以向四个域对象保存数据,pageContext.setAttribute("name",域范围常量)
获取数据:
默认从page域获取,pageContext.getAttribute("name");
可以从四个域对象获取数据,pageContext.getAttribute("name",域范围常量)
自动从四个域中搜索数据,pageContext.findAttribute("name")
顺序:page域——>request域——>session域——>context域
明天打算做的事情:继续任务四
遇到的问题:无
收获:对JSP的基本语法有了初步的认识
评论