发表于: 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的基本语法有了初步的认识


返回列表 返回列表
评论

    分享到