JSP_天上的云川的博客-程序员信息网_jsp

技术标签: java  JavaWeb笔记  jsp  

  • List item

一、概念

JSP全称为Java Server Pages,它指的就是java服务器端页面
我们可以理解为它就是一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码,用于简化我们的书写

二、原理

画图说明
在这里插入图片描述

JSP本质上就是一个Servlet

三、JSP指令

用于配置JSP页面,导入资源文件
格式:<%@ 指令名称 属性名1="属性值1 属性名2="属性值2 %>
例如<%@ page contentType="text/html;charset=UTF-8" language="java" %>

分类

  1. page:配置JSP页面的
  2. include:页面包含的。导入页面的资源文件
  3. taglib:导入资源

1、page指令

(1)contentType:等同于response.setContentType():
① 用于设置响应体的mime类型以及字符集;
② 高级开发工具例如idea还可以自动设置当前jsp页面的编码

(2)language:设置编写的脚本语言

(3)buffer:设置缓冲区的大小的属性

(4)import:导包属性

(5)errorPage:当前页面发生异常后,会自动跳转到指定的错误页面

(6)isErrorPage:标识当前页面是否是错误页面
① 如果值为true:那么标识为错误页面,就可以使用内置对象exception
② 如果值false:不能够使用内置对象exception

2、include指令

top.jsp代码内容
在这里插入图片描述
index.jsp代码内容
在这里插入图片描述

显示效果为
在这里插入图片描述

3、taglib

用于导入资源这里不过多解释,后面解释

四、注释

1、html注释:

<!-- -->只能注释html代码片段

2、jsp注释

<%-- --%>可以所有

注意:

如果使用jsp注释的话响应体当中不会显示注释的内容,如果使用html注释的话响应体当中会有注释的显示

举例代码如下
在这里插入图片描述
响应体中的效果为
在这里插入图片描述

五、JSP的脚本

JSP定义Java代码的方式

1、<% 代码 %>

定义的Java代码,在service方法中。sevice方法中可以定义什么,该脚本就能定义什么

2、<%! 代码 %>

定义的是Java代码,在jsp转换后的java类中的成员变量的位置

3、<%= 代码 %>

定义的java代码,会输出到页面上。输出语句中能定义什么该脚本中就能定义什么

六、JSP内置对象

在jsp页面中不需要创建和获取就能直接拿来使用的对象就是内置对象
jsp一共有9个内置对象

jsp内置对象变量名 Servlet中的真实类型 作用
pageContext PageContext 用于当前页面共享数据,还可以来获取其他八个内置对象
request HttpServletRequest 用于一次请求访问多个资源(通过转发实现)
session HttpSession 用于一次会话的多个请求间共享数据
application ServletContext 多个用户间来共享数据
response HttpServletResponse 它就是响应对象
page Object 它就是当前页面(当前serclet)的对象
out JspWriter 它就是一个输出对象,将数据输出到页面上
config ServletConfig sercvlet的配置对象
exception Throwable 异常对象

黄色标红重点注意作用域

1、request

2、response

3、out

可以将数据输出到页面上,是一个字符输出流对象,他和我们的response.getWriter()类似

response.getWriter()方法和out.write()方法到的区别

在tomcat服务器真正给客户端做出响应之前,会先找response缓冲区再找out缓冲区数据。所以response.getWrite()数据永远在out.write()之前
在这里插入图片描述
显示效果为
在这里插入图片描述

4、pageContext

用于当前页面共享数据

举例示范
在这里插入图片描述
显示到页面的结果就是
在这里插入图片描述

5、application

6、session

7、page

8、exception

9、config

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_46573836/article/details/109803703

智能推荐

创龙TI TMS320C6678 DSP + Xilinx Kintex-7 FPGA的拓展IO信号_Tronlong_的博客-程序员信息网

CPU处理器基于TI KeyStone C66x多核定点/浮点DSPTMS320C6678+ Xilinx Kintex-7FPGA的高性能信号处理器,TI TMS320C6678集成8核C66x,每核主频1.0/1.25GHz,每核运算能力高达40GMACS和20GFLOPS,FPGA XC7K325T逻辑单元326K个,DSP Slice 840个,8对速率为12.5Gb/s高速串行收发器,以下是CPU功能框图:拓展IO信号开发板引出3个拓展信号接口(CON6、CON12、CO...

npm配置淘宝镜像以及node-sass下载_TaotaoPlus的博客-程序员信息网_镜像下载sass

方法一sass_binary_site=https://npm.taobao.org/mirrors/node-sass/registry=https://registry.npm.taobao.org在根目录加.npmrc文件,并写入上述两句话,让所有的下载使用淘宝镜像方法二命令行执行:npm config set registry https://registry.npm.tao...

并发编程——JUC并发大厂面试问题_庄小焱的博客-程序员信息网_juc面试题

摘要CAS (Compare And Swap比较并且替换)是乐观锁的一种实现方式,是一种轻量级锁,JUC中很多工具类的实现就是基于CAS的。CAS是怎么实现线程安全的?线程在读取数据时不进行加锁,在准备写回数据时,先去查询原值,操作的时候比较原值是否修改,若未被其他线程修改则写回,若已被修改,则重新执行读取流程。举个栗子:现在一个线程要修改数据库的name,修改前我会先去数据库查name的值,发现name=“庄小焱”,拿到值了,我们准备修改成name=“傻逼”,在修改之前我们判断一下,原.

微信小程序声明函数时传参小技巧(花括号{}的巧妙应用)_空雨的博客-程序员信息网

在前台wxml的标签中bind绑定后台方法并传参时,正常情况时如下所示:onDel(e) { console.log("feedbak:") console.log(e); }此时可以看到控制台中输出的情况是这样的:接着通过e.xxx来获取所需参数,但是有时在场景中可能只需要其中的某一属性,这种方式就显得比较繁琐,于是就该轮到花括号登场了。比如我只需要其中de...

Linux学习路线参考_娜_91的博客-程序员信息网_linux rhca学习路线

这是偶然看到的linux学习路线,存下来以备用。很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的谋生资源与手段。下来我将会结合自己的几年的个人开发经验,及对Linux,更是类UNIX系统,及开源软件文化,谈谈Linux的学习方法与学习中应该注意的一些事。

随便推点

Chris Richardson 微服务系列_领哥的博客-程序员信息网

Chris Richardson 微服务系列全 7 篇:1.微服务架构的优势与不足http://blog.daocloud.io/microservices-1/概述:优势:首先,通过分解巨大单体应用为多个服务方法解决了复杂性问题;其次,这种架构使得每个服务都可以有专门开发团队来开发;再次,微服务架构模式使得每个微服务独立部署,开发者不再需要协调其它服务部署对本服务的...

内存中的线程_淘小欣的博客-程序员信息网_线程内存

一、内存中的线程多个线程共享同一个进程的地址空间中的资源,是对一台计算机上多个进程的模拟,有时也称线程为轻量级的进程。而对一台计算机上多个进程,则共享物理内存、磁盘、打印机等其他物理资源。多线程的运行也多进程的运行类似,是CPU在多个线程之间的快速切换。不同的进程之间是充满敌意的,彼此是抢占、竞争CPU的关系,如果迅雷会和QQ抢资源。而同一个进程是由一个程序员的程序创建,所以同一进程内的线程是合作关系,一个线程可以访问另外一个线程的内存地址,大家都是共享的,一个线程干死了另外一个线程的内存,那纯属程

《软件工程》活动图_Sailist的博客-程序员信息网_软件项目活动图

基本概念描述了活动和活动间依赖关系的图,其中节点表示项目的里程碑(活动结束) ,线表示活动,线对应的时间表示活动的持续时间。如图例中 ,A-&amp;gt;B 的这条线代表的这个活动从 A 开始,需要做 3天,才能结束,到达 B 里程碑(标志着 A-&amp;gt;B 这条线代表的活动的结束)。注意:图中的点不代表活动,并不能说活动 A 用 3 天到达活动 B,这是不准确的如到达 I 里程碑的边有两条...

openwrtx86安装docker_小钢炮 docker 搭建openwrt详细过程_weixin_39628342的博客-程序员信息网

前序联通光猫改桥接,原网关192.168.1.1改192.168.5.1K2P路由拨号,原网关192.168.123.1改192.168.1.1一: 安装 Openwrt1.首先ssh登陆N1,拉取docker镜像docker pull kanshudj/n1-openwrtgateway2.ip设置ip link set eth0 promisc ondocker network create ...

一起学智能合约之一智能合约的编程语言和开发环境_fpcc的博客-程序员信息网

 一、编程语言智能合约的编写语言有好几种:Solidity:有点类似Javascript风格, 文件的后缀名是.sol.。Serpent:与Python风格类似的Serpent, 文件的后缀名是.se。LLL:类似Lisp,估计好多人都没听说过这个语言。以胶Serpent火过一段时间,不过现在智能合约的主流编程语言是Solidity,维护也很及时,比较比较健壮稳定。举一...

代码即设计 | 掘金年度征文_weixin_33933118的博客-程序员信息网

写在前面2018年过去了,我很怀念它。2018年是漫长的一年,在这一年里收获了太多,难以细细道来。从一个在屎山上添屎的菜鸡,到现在的用心设计代码,饮冰二年,难凉我对编程艺术的追崇热血。从“SB js, SB java”的抱怨,到后面渐渐理解各个语言的设计思想,变成了对各个语言之美的赞叹。2018年,对我最重要的书是clean code,我写的最多的是java 和 js, 熟悉了pytho...

推荐文章

热门文章

相关标签