一、JSP概述
###<1>概念
java服务器页面
可以编写动态页面
其内部是以HTML标签为主,可以在HTML标签嵌套java代码
jsp文件以.jsp为后缀
jsp本质上就是一个Servlet

hello.jsp ----> tomcat---->web.xml (后缀匹配:*.jsp) ----> JspServlet ---->转译成hello_jsp.java(hello_jspSerlvet serice())的Servlet
hello_jspServlet(自动拼接了复杂的动态响应页面)

###<2>特点
HTML:jsp可以生成动态页面
JavaScript:jsp可以直接和服务器进行交互
Servlet:jsp很方便编写或者修改HTML页面(响应页面)

sun servlet ---- jsp --- serlvet+jsp

# 二、JSP的语法(重点)
###<1>申明定义区
格式:会被翻译成Servlet的成员属性
<%!
定义成员属性和方法
%>
作用:在此申明定义的变量和方法,在service方法中可以直接使用

###<2>java代码区
格式:其内部的java代码会被翻译到Servlet的service方法中
<%
编写任何的java代码(不能在此处申明方法)
%>

作用:执行任何java代码

###<3>输出表达式区
格式:此区域的数据被翻译到Servlet的service方法中,并调用输出流直接输出,reponse.getWrite().write(表达式)
<%=表达式%> 表达式后面不可以根分号,并且只能占用一行

作用:reponse.getWrite().write(表达式),将数据直接输出到页面

###<4>指定和动作
语法格式:
<%@ 指定的名称 属性=“属性值” 属性2=“属性值2” ....%>

4.1 page指令(实际开发中,page指定会默认创建,不去更改其配置)
设置当前.jsp页面的配置参数
<%@ page 属性=“属性值” 属性2=“属性值2” ....%>

language="语言"
jsp页面中可以嵌入的语言类型

contentType="页面内容编码格式"
等价于:response.setContentType(编码格式);

pageEncoding="当前页面的编码格式"
当前jsp文件本身的编码格式

seesion="true"
当前jsp页面是否可以直接使用session对象

import="类全路径"
当前jsp页面中导入其他的工具包

errorPage="错误页面的url"
当前jsp页面发生错误时,跳转的错误处理页面

iserrorPage="true|false"
当前jsp页面是否可以直接使用exception对象

4.2 include指令(重点)
可以将一个jsp页面或者html页面导入另一个jsp页面中
<%@ include 属性=“属性值” 属性2=“属性值2” ....%>

file="导入页面的位置"
指定导入到当前jsp页面的额页面信息
![](1.png)

4.3 taglib指令(重点)
用来扩展JSP程序的标签元素,引入其他功能的标签库文件
格式:
<%@taglib uri=“tagLibary” prefix=“prefix”%>

4.4 include动作
jsp:include动作用于引入另一个JSP程序或HTML文件等

执行到include时,被include的文件才会被JSPEngine编译。
如果include的是jsp文件,那它不会被转换成Servlet文件

格式如下:
<jsp:include page=“URLSpec” flush=“true”/>
<jsp:include page=“URLSpec” flush=“true”>
<jsp:param name=“key” value=“value”/>
</jsp:include>

4.5 forward动作
jsp:forward 实现请求的转发

格式如下:
<jsp:forward page=“URLSpec” flush=“true”/>
<jsp:forward page=“URLSpec” flush=“true”>
<jsp:param name=“key” value=“value”/>
</jsp:forward>

在目标页面中,从request中获取数据的方式是:request.getParameter(String key);

4.6 指定和动作的区别
include指令是在JSP程序的转换时期就将file
属性所指定的程序内容嵌入,然后再编译执行;

include动作在转换时期是不会被编译的,只有
在客户端请求时期如果被执行到才会被动态的
编译载入

一、 JSP概述 二、JSP的语法结构 三、JSP内置对象的更多相关文章

  1. jsp中的四个作用域,九个内置对象分别是什么?

    九大内置对象: 内置对象(又叫隐含对象),就是在jsp中,不需要创建(由服务器<容器>来创建),可以直接使用的对象. 对象 含义 类 作用域 request 请求对象 类型 javax.s ...

  2. JS基础-语法+流程控制语句+函数+内置对象【数组】

    JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使 ...

  3. java web学习总结(二十五) -------------------JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  4. JavaWeb---总结(十七)JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  5. JavaWeb学习总结(十七)——JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  6. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. javaWeb学习总结(8)- JSP中的九个内置对象(4)

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  8. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  9. JavaWeb学习 (十六)————JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  10. JavaWeb(十七)——JSP中的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

随机推荐

  1. UVa 514 Rails(栈的应用)

    题目链接: https://cn.vjudge.net/problem/UVA-514 /* 问题 输入猜测出栈顺序,如果可能输出Yes,否则输出No 解题思路 貌似没有直接可以判定的方法,紫书上给出 ...

  2. 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序

    显示时,有三个参数,前两个必填,第几页,一页多少个size,第三个参数默认可以不填. 但是发现这个方法已经过时了,通过查看它的源码发现,新方法为静态方法PageRequest of(page,size ...

  3. 设置ul水平居中

    <div class="jdcg-menu-nav"> <ul> <li>基本信息</li> <li>阶段资料</ ...

  4. T-SQL建索引

    USE database GO   ------------开始----------- ALTER TABLE [name] DROP CONSTRAINT 主键约束    ----删除主键约束 IF ...

  5. C# 数组深拷贝

    数组深拷贝,即完全复制出一份新的数组,两个数组内容完全相同. 一般有四种方法: 1. 循环遍历复制 2. 数组的成员方法:CopyTo CopyTo方法用作将源数组全部拷贝到目标数组中,可以指定目标数 ...

  6. 快速导出云服务器mysql的表数据

    1.许多互联网应用的数据库都布署在远程的Linux云服务器上,我们经常要编辑表数据,导出表数据. 通常的做法是ssh连接到服务器,然后命令登录,命令查询导出数据,费时费力,效率低下. 安装TreeSo ...

  7. 【JavaFx教程】第三部分:与用户的交互

    第3部分的主题: 在表中反应选择的改变(TableView中). 增加增加,编辑和删除按钮的功能. 创建自定义弹出对话框编辑人员. 验证用户输入. 响应表的选择 显然,我们还没有使用应用程序的右边.想 ...

  8. 【C#数据结构系列】栈和队列

    一:栈 栈和队列也是线性结构,线性表.栈和队列这三种数据结构的数据元素以及数据元素间的逻辑关系完全相同,差别是线性表的操作不受限制,而栈和队列的操作受到限制.栈的操作只能在表的一端进行,队列的插入操作 ...

  9. Gson 使用和原理

    使用教程: http://blog.csdn.net/axuanqq/article/details/51441590 http://www.jianshu.com/p/fc5c9cdf3aab 源码 ...

  10. Java - HashMap 多线程安全解析

    HashMap多线程并发问题分析 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问 ...