学习日常笔记day12jsp基础
1.Jsp基础
1.1Jsp引入
Servlet的作用:用java语言开发动态资源的技术
Jsp的作用:用java语言(+html语言)开发动态资源的技术
jsp就是servlet
1.2Jsp的特点
1)jsp的运行必须交给tomcat服务器
tomcat的work目录:tomcat服务器存放jsp运行时的临时文件
2)jsp页面既可以写html代码,也可以写java代码
(html页面不能写java代码,而jsp页面可以写java代码)
1.3体验jsp页面作用
需求:显示当前时间到浏览器上
1 <%@ page language="java" import="java.util.*,java.text.*" pageEncoding="utf-8"%> 2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 3 <html> 4 <head> 5 <title>第一个jsp页面</title> 6 </head> 7 <body> 8 <% 9 //写java代码 10 //获取当前时间 11 SimpleDateFormat sdf = new SimpleDateFormat(); 12 String curDate = sdf.format(new Date()); 13 //输出内容到浏览器 14 //response.getWriter().write(""); 15 out.write("当前时间为2:"+curDate); 16 %> 17 </body> 18 </html>
1.4jsp的执行过程
执行流程
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类里面方法,返回内容显示到浏览器。
注意:
1)jsp文件修改了或jsp的临时文件被删除了,要重新走翻译(1)和编译(2)的过程
1.5jsp和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()
2.jsp语法
2.1jsp模板
jsp页面中的html代码就是jsp的模板
2.2jsp表达式
语法:<%=变量或者表达式%>
作用:向浏览器输出变量的值或者表达式计算的结果
注意:
1)表达式的原理就是翻译成out.print("变量");通过该方法向浏览器写出内容
2)表达式后面不需要带分号结束
2.3jsp的脚本
语法:<%java代码%>
作用:执行java代码
注意:原理把脚本中java代码原封不动拷贝到_jspService方法中执行。
2.4jsp的声明
语法:<%!变量或方法%>
作用:声明jsp的变量或方法
注意:变量翻译成成员变量,方法翻译成成员方法
2.5jsp的注释
语法:<%!-- jsp注释 --%>
注意:html的注释会被翻译和执行,而jsp的注释不能被翻译和执行
3.jsp的三大指令
3.1include指令
作用:在当前页面用于包含其他页面
语法:<%@include file="common/header.jsp"%>
注意:1)原理是把被包含的页面的内容翻译到包含页面中,合并成翻译一个java源文件,在编译运行,这种包含叫静态包含(源码包含)
2)如果使用静态包含,被包含页面中不需要出现全局的html标签了。如(html,head,body)
3.2page指令
作用:告诉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" %>
3.3taglib指令
转载于:https://www.cnblogs.com/liangshandada/p/5453499.html
学习日常笔记day12jsp基础相关推荐
- 学习MSCKF笔记——四元数基础
学习MSCKF笔记--四元数基础 学习MSCKF笔记--四元数基础 1. 四元数基本性质 1.1 加法 1.2 乘法 1.3 共轭 1.4 模 1.5 逆 1.6 单位四元数 1.7 指数 1.8 对 ...
- 深度学习word2vec笔记之基础篇
深度学习word2vec笔记之基础篇 声明: 1)该博文是多位博主以及多位文档资料的主人所无私奉献的论文资料整理的.具体引用的资料请看参考文献.具体的版本声明也参考原文献 2)本文仅供学术交流,非商用 ...
- nodejs学习巩固笔记-nodejs基础,Node.js 高级编程(核心模块、模块加载机制)
目录 Nodejs 基础 大前端开发过程中的必备技能 nodejs 的架构 为什么是 Nodejs Nodejs 异步 IO Nodejs 事件驱动架构 全局对象 全局变量之 process 核心模块 ...
- 学习日常笔记day11cookie及session
1.会话管理 1.1会话管理定义 会话管理:管理浏览器客户端和服务端之间的会话过程中产生的会话数据 域对象:实现资源之间的数据共享 request 域对象 context 域对象 1.2.会话技术 C ...
- python的学习日常笔记 - 字符串
转义字符 转义字符 含义 \\ 反斜杠符号 \' 单引号 \" 双引号 \n 换行 \b 退格 \t 横向制表符 \v 垂直制表符 在字符串前面添加r或R,禁止转义字符的实际意义 print ...
- 学习MSCKF笔记——后端、状态预测、状态扩增、状态更新
学习MSCKF笔记--后端.状态预测.状态扩增.状态更新 学习MSCKF笔记--后端.状态预测.状态扩增.状态更新 1. 状态预测 2. 状态扩增 3. 状态更新 学习MSCKF笔记--后端.状态预测 ...
- 深度学习word2vec笔记之算法篇
本文转载自<深度学习word2vec笔记之算法篇>对排版和内容作了部分调整,感谢大佬分享. PDF版本关注微信公众号:[终南樵],回复:[word2vec基础]获取 1. 声明 该博文是G ...
- 深度学习word2vec笔记
基础篇 算法篇 应用篇 深度学习word2vec笔记之基础篇 一.前言 伴随着深度学习的大红大紫,只要是在自己的成果里打上deep learning字样,总会有人去看.深度学习可以称为当今机器学习领域 ...
- 深度学习入门笔记(一):机器学习基础
专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...
最新文章
- Pycharm问题归纳
- 【Deep Learning笔记】循环神经网络
- MongoDb注意事项
- 静态网站任何优化怎么设置_网站关键词怎么设置对网站推广优化有利?
- Lighting System Design UVA 11400 (dp+思维)
- 被冻结的钱,银行可以私自处理吗?
- [css] 当使用opacity时会使得元素的子元素也透明,此时不想要子元素也跟着透明怎么办?
- jmstemplate 获取队列id_学习Linux(38)消息队列
- VC6.0调试知识大全
- [转载] Python之Numpy模块中的方法详解
- 简单复制粘贴个linux红帽6
- Xilinx Artix-7 Aurora调试过程中遇到的问题
- 基于单片机的电子万年历的设计
- git: command not found 解决
- linux服务器挂掉之后
- Android使用Downloadmanager进行下载时,鉴别取消下载和下载完成的广播
- IPv4和IPv6的相互转换
- matlab 回归分析t检验,第三章 利用Matlab和SPSS进行线性回归分析
- MySQL基础--MySQL数据库基本操作
- DDOS核弹攻击--Memcached放大攻击复现
热门文章
- 学习前端开发,那你值得css的特点有哪些?
- 温故而知新,8个有用的JS技巧「小知识点」
- python钉钉机器人发送消息_python调用钉钉机器人发送消息
- java aop设计_Spring4.x基础配置(三):Spring AOP
- linux7系统怎么启动ftp,CentOS 7上启动 vsftp报错解决一例
- 计算机考研专业综合考试二,2015计算机考研大纲:专业基础综合考试大纲原文(2)...
- jsonarray转化list对象_第8篇:Cython的面向对象--Python类 vs Cython扩展类
- Linux下tar压缩与解压缩文件
- 写磁盘太慢导致服务超时问题分析
- dcmtk在PACS开发中的应用(基础篇) 作者:冷家锋 第三章 工作列表(Work List)(一)...