jsp学习(一)

2023-05-16

jsp:

java 服务器页面

作用:将内容的生成和信息的展示相分离

运行在服务端,本质上就是一个servlet,产生的java文件和class保留在tomcat的word目录下


jsp脚本:

<%..%>java代码片段

<%=..%>输出表达式 相当于out.print();

<%!..%> 声明成员

jsp指令:

作用:生命jsp页面的一些属性和动作

格式:<%@指令名称 属性="值" 属性="值" %>

分类:

page:主要生命jsp页面的一些属性

include:静态包含

taglib:导入标签库

注意:一个页面中可以出现多个指令

指令可以出现任意位置,一般都房在jsp页面的最上面

page指令:

重要属性:3个

contentType:设置响应流编码,及通知浏览器用什么编码打开,设置文件的mimetype

pageEncoding:设置页面的编码

import:导入所需要的包(jsp本质也是一个类

contentType和pageEncoding的联系:

若两者都出现的时候,各自使用各自的编码

若只出现一者,两个都使用出现的这个编码

若两者都不出现,使用服务器默认的编码 tomcat7使用iso-8859-1(不支持中文

了解属性:

language:当前jsp页面里面可以嵌套的语言

buffer:设置jsp页面的流的缓冲区大小

autoFlush:是否自动刷新,默认自动刷新

extends:声明当前jsp页面继承于哪个类,必须继承的是httpServlet及其子类

session:设置jsp页面中是否可以使用session内置对象

isELIgnored:是否忽略el表达式

isErrorPage:当前页面是否是一个错误页面,若值为true,可以使用jsp页面的一个内置对象 exception

errorPage:当前jsp页面出现异常的时候跳转到jsp页面

inlude指令:

静态包含,就是将其他页面或者servlet的内容包含进来,一起进行编译运行,生成一个java文件

格式:<%@include file="相对路径或者是内部路径" %>

相对路径: ./或什么都不写 当前路径

上一级路径 ../

绝对路径:项目的内部路径 <%@include file="/jsp/include/" %>

带协议和主机的绝对路径

不带协议和主机的绝对路径 /项目名/资源

内部路径:

不带协议和主机的绝对路径去掉项目名

请求转发 静态包含 动态包含

taglib指令:导入标签库

导入jar包

<%@tagliv prefix="前缀名" uri="名称空间" %>

若导入之后

<前缀名:标签 ..>

例如:

<c:if test="">输出内容</c:if>


jsp内置对象:☆☆(9大内置对象)

在jsp页面上可以直接使用的对象

内置对象 类型

out JspWriter

request HttpServletRequest

response HttpServletResponse

session HttpSession

exception Throwable

page(当前jsp、servlet相当于this) Servlet(this)

config(servletConfig) servletConfig

application(servletContext) servletContext

pageContext(当前页面的上下文) pageContext

pageContext使用:理解

1.域对象

xxxAttribute()

2.操作其他域对象(设置获取删除值)

xxxAttibute(...,int scode);

scope取值:

APPLICATION_SCODPE

SESSION_SCOPE

REQUEST_SCOPE

PAGE_SCOPE


3.获取其他的内置对象:getXXX()

注意:

getRequest():获取request内置对象

4.便捷查找

findAttibute(String key):

依次从pagecontext,request,session,application四个域中,查找相应的属性,若查找到了返回值,且结束该次查找,若查找不到返回一个null


jsp域对象:理解

application 整个项目

session 一次会话

request 一次请求(可以跨页面多个页面)

pageContext 一个页面

jsp的动作标签

<jsp:forward>:请求转发 相当于java中 request.getRequestDispatcher.forward(...);


<jsp:include>:动态包含

就是将被包含页面或者servlet的运行结果包含到当前页面中



el:

jsp的内置表达语言,从jsp2.0开始。用来替代<%=..%>

作用:

1.获取域中数据☆

2.执行运算☆

3.获取常见的web对象

4.调用java的方法

格式:

${el表达式}

获取域中数据:

注意:若属性名称中出现了"."|"+"|"-"等特殊符号,需要使用scope获取

例如:${requestScope.[arr.age]}

获取简单数据:

${pageScope|requestScope|sessionScope|aplicationScope.属性名称}



便捷获取用的 findAttibute,以后经常使用:

${属性名}:一次从pageContext,request,session,application查找指定属性,若查找到返回值,结束该次查找,若查找不到返回""


获取复杂数据:

获取数组中的数据:${域中的名称[index]}




获取list中的数据:${域中的名称[index]}


获取map中的数据:${域中的名称.键名}


获取特殊名字的数据:${requestScope["arr.age"]}


javabean导航:

javabean:java语言写成的可重用组件。类必须是具体的和公共的,并且具有无参构造器。狭义上来说就是我们编写的普通java类 例如:User Person

javabean规范:

1.必须是一个公共的具体的类 public class

2.提供私有字段 private String id;//id称之为字段

3.提供公共访问字段的方法 get|set|is方法

public String getId(){..}

一旦有公共的方法之后,get|set|is之后的内容,将首字母小写,将这个东西称之为bean属性

id就是一个bean属性

4.提供一个无参的构造器

5.一般实现序列化接口 serializable



jsp中要导入bean。

${域中javabean名称.bean属性}

执行运算:

四则运算 关系(>..) 逻辑(&& ||)

+:只能进行加法运算,字符串形式的数字可以进行加法运算,不能做拼接字符串



empty:判断一个容器的长度是否为0(array,set,list,map),还可以判断一个对象是否为空





三元运算符:${3 > 4 ? "yes" : "no"}



el的内置对象(了解)

可以在el中直接使用的对象(11个)

pageScope

requestScope

sessionScope

applicationScope

    param

paramValues


了解:和请求头相关的el内置对象

header

headerValues

了解:和全局初始化参数相关的el内置对象

initParam

web.xml 文件 [content-param]

cookie☆

${cookie}  获取map{key=Cookie}

例如:创建cookie

Cookie c = new Cookie("username","tom");

通过${cookie}获取相当于

{username=new Cookie("username","tom")}

相当于map的key是cookie的键

map的值是当前cookie

若想获取名称为username的cookie的value值(获取tom)

${cookie.username.value} --javabean导航

注意:

java中Cookie的api

getName():获取cookie的名称

getValue():获取cookie的value值

我们称name和value是cookie的bean属性

使用cookie内置对象

${cookie.给cookie起名字.value}

例如:

获取jsession的值

${cookie.JSESSIONID.value}


pageContext☆ 获取不是map集合,相当于jsp的pageContext内置对象

在jsp中获取项目名称

${pageContext.request.contextPath}

注意:

除了pagecontext其余对象获取的全是map集合  

         了解:和参数相关的el内置对象

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jsp学习(一) 的相关文章

随机推荐

  • STM32在子函数中的局部变量数组利用DMA发送无法正确发送数据的问题

    现象 xff1a 在子函数中 xff0c 定义了一个局部变量sendbuf 8 61 1 2 3 4 5 6 7 8 xff0c 然后分别利用普通串口发送函数发送可以正常发送和利用DMA发送 xff0c 并利用串口调试助手查看 xff0c
  • 如何使用Qt插件在Qt中进行ROS开发

    一 前言 本文介绍一种Qt下进行ROS开发的完美方案 xff0c 使用的是ros industrial的Levi Armstrong在2015年12月开发的一个Qt插件ros qtc plugin xff0c 这个插件使得Qt 新建项目 和
  • MN316_OPEN(NBIOT)物联网模块环境搭建

    因为项目的需要 这里要使用NBIOT 踩了一些坑 这里总结一下 编译 官方给的SDK如下 按照说明 在该目录下直接运行如下指令 34 build bat dlvs h0 demo 34 即可成功编译 但是我编译的时候不成功 报错如下 最后发
  • 《学习STL》-1.STL简介

    引言 当你C 43 43 入门后 xff0c 学了些C 43 43 编程规则 xff0c 正如 C 43 43 Primer 里的内容 xff0c 你知道C 43 43 里面的基本数据类型 循环 判断 函数 类 模板等 这阶段你的确会编写一
  • linux查看大小端命令

    Byte Order Litter Endian 小端模式 xff0c 绝大部分机器都是小端模式
  • 星网宇达利用NTRIPClient连接千寻服务器获取差分定位数据

    硬件设备 xff1a 星网宇达XW GI5610 软件设备 xff1a QXNTRIPClient 连接方式 xff1a 星网宇达RTK RS232连接电脑串口 打开QXNTRIPClient xff0c 连接千寻服务器 接收下发RTK数据
  • Ubuntu20.04 安装 mNetAssist

    安装环境 xff1a Ubuntu20 04安装包 xff1a mNetAssist release amd64 deb 安装与运行 span class token function sudo span span class token
  • 使用 include-what-you-use 检测冗余头文件

    include what you use 可以很方便的检测未使用的头文件 xff0c 使用的时候绕了点路 xff0c google后解决 xff0c 记录一下 1 安装clang ubuntu下直接apt get 安装就行了 需要注意的是
  • C语言结构体对齐详解

    文章目录 一 C语言结构体对齐大小快速判断二 反汇编角度看结构体三 总结 一 C语言结构体对齐大小快速判断 在C语言中定义一个结构体 xff0c 里面具体占用多少个字节呢 xff0c 先举一个例子 xff0c 如下 xff1a span c
  • 飞控各传感器相关作用

    飞控主要包括主控处理器MCU xff08 main control unit 和惯性导航模块IMU xff08 Inertial Measurement Unit xff09 四轴则必须配备3轴陀螺仪 xff0c 是四轴飞行器的机械结构 动
  • C++ : C++基础 :从内存的角度看 char[]和char*

    char 和char 区别 1 xff1a 数据在内存中的存储2 xff1a char 和 char 分析3 xff1a char p2 和 char p1 3 1 修改指针所指向的地址 4 string转char 5 char 转stri
  • 基于 nonce 的用户身份验证协议

    一 xff1a 什么是nonce 维基百科 xff1a 安全工程中 xff0c Nonce 是一个在加密通信只能使用一次的数字 在认证协议中 xff0c 它往往是一个 随机或 伪随机数 xff0c 以避免 重放攻击 二 xff1a 举例说明
  • php从数据库读取菜单数据并树状显示

    数据库表结构 mcp node表 字段 node code node name node pcode node code为区域编码 node name为区域名称 node pcode为父区域编码 祖先父区域编码为0 预期效果 代码实现部分
  • 蓝牙BLE之CC2541 OAD升级[带看门狗OAD]

    说明和代码设置 本文有两篇文章参考 其中博主 34 甜甜的大香瓜 34 的文章是原始文章 详细介绍了ImageA的hexh和B的bin以及A的bin是怎么生成的和具体的操作方法 https blog csdn net feilusia ar
  • php 从数据库读取数据并生成树型可折叠菜单

    数据存储形式 折叠菜单显示 直接调用 php页面即可输出树状可折叠菜单 所用到的js 区域折叠函数 function ShowMenu MenuID if MenuID style display 61 61 34 none 34 Menu
  • 提权apache 为root权限

    include lt stdio h gt include lt stdlib h gt include lt string h gt include lt sys types h gt include lt unistd h gt int
  • PHP 生成 WSDL 文件工具类 SoapDiscovery.class.php

    lt pre name 61 34 code 34 class 61 34 php 34 gt lt php Copyright c 2005 Braulio Jos Solano Rojas All rights reserved Red
  • Yii1.1 实现简单restful 框架

    学习了下php的rest服务 xff0c 将总结记录如下 采用Yii1 1版本 xff0c Yii2已经专门有restful专题 xff08 ps 暂时没有学习 xff09 1 先用Yii创建项目 2 创建数据库 xff08 rest xf
  • java 泛型

    什么是 泛型 xff1f 泛型 xff08 Generic type 或者 generics xff09 是对 Java 语言的类型系统的一种扩展 xff0c 以支持创建可以按类型进行参数化的类 可以把类型参数看作是使用参数化类型时指定的类
  • jsp学习(一)

    jsp java 服务器页面 作用 xff1a 将内容的生成和信息的展示相分离 运行在服务端 xff0c 本质上就是一个servlet xff0c 产生的java文件和class保留在tomcat的word目录下 jsp脚本 xff1a l