jsp 动态网页技术:服务器和用户交互的动态网页技术
jsp【java server page 】jsp ≈ html +servlet
jsp 文件是以 *.jsp结尾:jsp文件 靠服务器运行,jsp 是服务器端脚本语言
jsp 解决的问题:
servlet将数据传到html ,html 无法展示java代码中存储的数据
servlet中 Printwriter.print("html代码"); 展示页面很麻烦,我们使用转发或重定向 html
jsp实现 服务器端java代码和客户端页面代码html代码的数据交互问题
jsp的工作原理和生命周期:jsp ---->servlet
jsp 利用 tomcat工具类将 jsp 编译成 servlet ,servlet中 service方法中 ,writer.println(会将jsp的html代码输出到前端浏览器)
生命周期:
1 加载jsp 的web项目
2 当我们访问jsp文件的时候,jsp引擎会将index.jsp文件 转换成 java类
index_jsp.java servlet文件 ----->编译 成一个 class文件
3 jsp初始化【jspInit()】
4 接收请求,将 带有数据的html响应到页面
jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response)
out.write("html代码 +展示的数据 ");
5 jsp 转换成servlet销毁
jspDestroy()
jsp 文件(jsp脚本语言基本结构)java代码+html+js+css
jsp页面构成简单介绍:
<%@page language="java" import="java.util*" isELIgnored="false" errorPage="error.jsp" pageEncoding="UTF-8"%>
<!-- page指令:是对jsp的描述,约束 ,编码设置
pageEncoding:编码集设置
language:使用的语言是java语言
import:需要导入 java包或类
extends:继承某个java
errorPage:如果当前jsp 发生运行逻辑错误会跳转到 error.jsp页面
isELIgnored:属性 false 可以使用EL表达式;true 默认忽略
jsp对应的servlet 3.0 3.1 版本 默认是忽略EL表达式
taglib 指令:引入外部的标签库
java在 < %代码块中 % >
-->
jsp的基本语法:
jsp的结构 :java代码+html 代码 js代码 css代码
jsp 基本代码块
<% @ page %>
<% 普通代码块 是java代码 %>
jsp的声明代码块
<%! 变量的声明 %>
<%! int num ; %> <%! int num=0 ; %>
<% num =1; %>
jsp的输出表达式
将数据输出到页面上,java代码中的数据 (变量 输出到页面上)
<%= 输出的内容 %>
jsp 的注释 【<%-- --%>注释不能嵌套】
jsp的注释和java代码的注释 不会显示在浏览器源码中,不会响应到客户端,html js css 的注释会显示在浏览器源码中, 会响应到客户端
注意:普通的代码块 按照java代码规范 需要加;输出表达式 不能加。
jsp的指令:(熟悉)
page 对jsp文件的描述
taglib 引入外部的标签库
include 静态导入:指令将 两个jsp文件进行合并 ,会变成一个servlet ,所以如果变量相同会报异常
this is parent .jsp!!!!!!!!!!!!!!!!!!<hr>
<!-- jsp文件合并静态导入 -->
<%@include file="child1.jsp" %>
jsp的动作元素:include 动态导入
会将jsp页面的展示结果合并变成一个页面,两个jsp文件会变成两个servlet
<!-- 动态导入 -->
<jsp:include page="child1.jsp"></jsp:include>
静态导入和动态导入:动态导入的灵活性比较高