4 Jsp基础

4.1 Jsp引入

Servlet的作用: 用java语言开发动态资源的技术!!!

Jsp的作用:用java语言(+html语言)开发动态资源的技术!!!

Jsp就是servlet!!!

4.2 Jsp的特点

1)jsp的运行必须交给tomcat服务器!!!!

tomcat的work目录: tomcat服务器存放jsp运行时的临时文件

2)jsp页面既可以写html代码,也可以写java代码。

(html页面不能写java代码 。而jsp页面可以写java代码)

4.3 体验jsp页面作用

需求:显示当前时间到浏览器上

可以把jsp页面当做html页面在tomcat中访问!!!

4.4 Jsp的执行过程

问题: 访问http://localhost:8080/day12/01.hello.jsp  如何显示效果?

1)访问到01.hello.jsp页面,tomcat扫描到jsp文件,在%tomcat%/work把jsp文件翻译成java源文件

(01.hello.jsp   ->   _01_hello_jsp.java) (翻译)

2)tomcat服务器把java源文件编译成class字节码文件 (编译)

(_01_hello_jsp.java  ->  _01_hello_jsp.class)

3)tomcat服务器构造_01_hello_jsp类对象

4)tomcat服务器调用_01_hello_jsp类里面方法,返回内容显示到浏览器。

第一次访问jsp:

走(1)(2)(3)(4)

第n次访问jsp:

走(4)

注意:

1)jsp文件修改了或jsp的临时文件被删除了,要重新走翻译(1)和编译(2)的过程

4.5 疑问

问题: 为什么Jsp就是servlet!!!

jsp翻译的java文件:

public final class _01_hello_jsp extends org.apache.jasper.runtime.HttpJspBase

implements org.apache.jasper.runtime.JspSourceDependent {

HttpJspBase类:

public abstract class org.apache.jasper.runtime.HttpJspBase extends javax.servlet.http.HttpServlet implements javax.servlet.jsp.HttpJspPage {

结论: Jsp就是一个servlet程序!!!

servlet的技术可以用在jsp程序中

jsp的技术并不是全部适用于servlet程序!

Servlet的生命周期:

1)构造方法(第1次访问)

2)init方法(第1次访问)

3)service方法

4)destroy方法

Jsp的生命周期

1)翻译: jsp->java文件

2)编译: java文件->class文件(servlet程序)

3)构造方法(第1次访问)

4)init方法(第1次访问):_jspInit()

5)service方法:_jspService()

6)destroy方法:_jspDestroy()

3)->6)是servlet的生命周期。因为jsp就是servlet,所以servlet的生命周期就是jsp的生命周期。

5 Jsp语法

5.1 Jsp模板

jsp页面中的html代码就是jsp的模板

5.2 Jsp表达式

语法:<%=变量或表达式%>

作用: 向浏览器输出变量的值或表达式计算的结果

注意:

1)表达式的原理就是翻译成out.print(“变量” );通过该方法向浏览器写出内容

2)表达式后面不需要带分号结束。

5.3 Jsp的脚本

语法:<%java代码 %>

作用: 执行java代码

注意:

1)原理把脚本中java代码原封不动拷贝到_jspService方法中执行。

5.4 Jsp的声明

语法:<%! 变量或方法 %>

作用: 声明jsp的变量或方法

注意:

1)变量翻译成成员变量,方法翻译成成员方法。

5.5 Jsp的注释

语法: <%!--  jsp注释  --%>

注意;

1)html的注释会被翻译和执行。而jsp的注释不能被翻译和执行。

6 Jsp的三大指令

6.1 include指令

作用: 在当前页面用于包含其他页面

语法: <%@include file="common/header.jsp"%>

注意:

1)原理是把被包含的页面(header.jsp)的内容翻译到包含页面(index.jsp)中,合并成翻译成一                                              个java源文件,再编译运行!!,这种包含叫静态包含(源码包含)

2)如果使用静态包含,被包含页面中不需要出现全局的html标签了!!!(如html、head、                                                 body)

6.2 page指令

作用: 告诉tomcat服务器如何翻译jsp文件

<%@ page

language="java"   --告诉服务器使用什么动态语言来翻译jsp文件

                  import="java.util.*" --告诉服务器java文件使用什么包

导入包,多个包之间用逗号分割

                  pageEncoding="utf-8"  --告诉服务器使用什么编码翻译jsp文件(成java文件)

contentType="text/html; charset=utf-8" 服务器发送浏览器的数据类型和内容编码

注意:在开发工具中,以后只需要设置pageEncoding即可解决中文乱码问题

errorPage="error.jsp"

isErrorPage="false"

buffer="8kb"

session="true"

isELIgnored="false"

%>

6.3 taglib指令

总结:

1)编码实战:

1.1 servlet应用

1.2 初步了解软件开发流程

2)Jsp基础

2.1 Jsp的执行原理(翻译-》编译-》servlet的生命周期)

2.2 语法(jsp表达式,jsp脚本)

2.3 指令

include指令

page指令

001jsp的基本知识-包括生命周期,怎么编译等等的更多相关文章

  1. activity 和 生命周期: 消息通信

    实际上关于activity大概流程已经了解了,在深入的话方向应该是ams的处理操作和界面创建和view绘制.这些话题之后再谈,activity是一个gui程序,其中离不开的就是消息通讯,也就是在消息循 ...

  2. React生命周期和虚拟DOM

    一.虚拟DOM 1.React并不直接操作DOM,React中的render方法,返回一个DOM描述,React能够将这个DOM描述与内存中的表现进行比较,然后以最快的方式更新浏览器 2.React实 ...

  3. Maven的构建生命周期理解

    以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命 ...

  4. Maven构建生命周期

    以下引用官方的生命周期解释https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html: 一.构建生命 ...

  5. 一起学习vue源码 - Vue2.x的生命周期(初始化阶段)

    作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...

  6. 你还不知道Vue的生命周期吗?带你从Vue源码了解Vue2.x的生命周期(初始化阶段)

    作者:小土豆biubiubiu 博客园:https://www.cnblogs.com/HouJiao/ 掘金:https://juejin.im/user/58c61b4361ff4b005d9e8 ...

  7. 面试之jsp、Servlet相关知识——生命周期, 区别等

    1.servlet生命周期 所谓生命周期,指的是servlet容器如何创建servlet实例.分配其资源.调用其方法.并销毁其实例的整个过程. 阶段一: 实例化(就是创建servlet对象,调用构造器 ...

  8. JSP基础知识➣结构及生命周期(一)

    概述 网络服务器需要一个JSP引擎,也就是一个容器来处理JSP页面.容器负责截获对JSP页面的请求.本教程使用内嵌JSP容器的Apache来支持JSP开发. JSP容器与Web服务器协同合作,为JSP ...

  9. JAVA面试题 线程的生命周期包括哪几个阶段?

    面试官:您知道线程的生命周期包括哪几个阶段? 应聘者: 线程的生命周期包含5个阶段,包括:新建.就绪.运行.阻塞.销毁. 新建:就是刚使用new方法,new出来的线程: 就绪:就是调用的线程的star ...

随机推荐

  1. 算法笔记_157:算法提高 c++_ch02_01(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 编写一个程序,利用强制类型转换打印元音字母大小写10种形式的ASCII码. 输出的顺序为:大写的字母A,E,I,O,U的ASCII码,小写的字母a, ...

  2. 算法笔记_033:十六进制转八进制(Java)

    目录 1 问题描述 2 解决方案 2.1 注意问题 2.2 具体实现代码   1 问题描述 具体问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1& ...

  3. CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别

    1.代码 (1)示例代码1 <!DOCTYPE html> <html lang="zh"> <head> <meta charset=& ...

  4. 关于Csdn水区被占据一事 (2015-08-01)

    例如以下图所看到的 水区被占据 ,假设发贴机不仅仅在水区发贴.也在其他版块也发贴,将不堪设想啊各位. 如今非常多站点也经历过被 注冊机,发贴机,乱炸,是非常可恨的事.可是您想想.为什么注冊机.发贴机会 ...

  5. centos 6.5安装docker报错(查看报错详细信息--推荐)

    (1)yum安装docker [root@namenode ~]# yum install docker-io (2)启动docker [root@namenode ~]# /etc/init.d/d ...

  6. iOS开发- 隐藏键盘总结

    一.隐藏自身软键盘 当对于有多个UITextField控件都想通过点击"Return"来隐藏自身软键盘的情况.这时的最好办法是使用Did End on Exit事件.在点击软键盘右 ...

  7. 去掉A标签的虚线框

    outline是css3的一个属性,用的很少. 声明,这是个不能兼容的css属性,在ie6.ie7.遨游浏览器都不兼容. outline控制的到底是什么呢? 当聚焦a标签的时候,在a标签的区域周围会有 ...

  8. C#:ZedGraph画图控件(待补充)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  9. 虚析构函数? vptr? 指针偏移?多态数组? delete 基类指针 内存泄漏?崩溃?

    五条基本规则: 1.如果基类已经插入了vptr, 则派生类将继承和重用该vptr.vptr(一般在对象内存模型的顶部)必须随着对象类型的变化而不断地改变它的指向,以保证其值和当前对象的实际类型是一致的 ...

  10. UVA10624 - Super Number(dfs)

    题目:UVA10624 - Super Number(dfs) 题目大意:给你n和m要求找出这种m位数,从第n位到第m位都满足前i位是能够被i整除,假设没有这种数,输出-1.有多个就输出字典序最小的那 ...