分分钟搞定 JSP 技术
一.JSP的语法
1.模版元素
写在JSP中的html内容
在翻译后的Servlet中, 直接被out.write原样输出
2.JSP脚本表达式
格式: <%= %>
在翻译后的Servlet中, 计算表达式的值在原样输出
3.JSP脚本片段
格式: <% 若干条java语句 %>
在翻译后的Servlet中, 直接复制粘贴到对应的位置执行
多个片段之间的变量可以互相访问
一个片段中的java代码可以不完整, 但是在翻译后的Servlet, 多个片段组成的java代码必须完整符合java语法
片段中不能包含其他的jsp元素
~~4.JSP声明
<%! %>
写在jsp声明中的内容, 会和类中的方法平级成为类的成员
5.JSP注释
<%-- 注释内容 --%>
被jsp注释注释的内容在jsp翻译过程中会被丢弃
6.JSP的指令
(1) page指令
<%@page 若干属性声明...%>
session="true", 默认为true, 表示翻译后的Servlet会创建session对象
如果不想创建session, 可以改为false
import 导包
pageEncoding 指定jsp解析引擎使用哪一个编码来翻译jsp
(2) include指令
<%@include file="/xxx" %>
实现请求包含效果, 是静态包含
(3) taglib指令
用来导入tld文件
二.JSP的九大隐式对象
page-------------Servlet
request----------request
response--------response
config-----------ServletConfig
application-----ServletContext
session---------session
exception------exception
out
pageContext
1.pageContext
代表JSP运行环境的对象
(1)入口对象, 可以用来获取其他八大隐式对象
getPage()方法----------------返回page隐式对象
getRequest()方法-------------返回request隐式对象
getResponse()方法------------返回response隐式对象
getServletConfig()方法-------返回config隐式对象
getServletContext()方法------返回application隐式对象
getSession()方法-------------返回session隐式对象
getException()方法-----------返回exception隐式对象
getOut方法()-----------------返回out隐式对象
(2)本身是一个域对象, 并且提供了入口来操作其他三大域对象
setAttribute(String name, Object value);
setAttribute(String name, Object value, int scope);
getAttribute(String name);
getAttribute(String name, int Scope);
removeAttribute(String name);
removeAttribute(String name, int Scope);
getAttributeNames();
findAttribute();//按照从小到大的顺序去四大域中寻找指定名称属性, 找到就返回, 找不到就返回null
(3) 提供了便捷方法实现请求包含和转发
pageContext.forward("xxx");
pageContext.include("xxx");
三.JSP标签技术
1.JSP标签(SUN公司提供)
<jsp:forward></jsp:forward>
<jsp:include></jsp:include>
<jsp:param></jsp:param>
2.EL表达式
只能获取不能遍历和设置
( 在开发使用时,若表达式有值时会直接在所在位置显示该值,若没有值则直接显示一个空不是null )
(1) 获取数据
获取常量/变量 -->${ "aaa" }...
获取数组中的数据-->${ username }... -->它会自动寻找与之对应的值并输出。这种el表达式在底层是用findAttribute()方法来实现的。
获取map中的数据-->${ attr[0] }...
获取集合中的数据-->${ list[0] }...
获取javaBean中的数据-->${ map.key },${ map["key"] }...-->需要获取哪个属性值时不是由JavaBean内部定义的属性名来决定而是由get和set方法名来决定的。将方法名的get或set和方法后面的括号去掉以及首字母小写后这就是通过el表达式获取时需要的属性名。
注意: 变量/集合/数组/map/JavaBean必须放在域中才可以通过el获取
(2) 执行运算
算术运行
+号在el中只能做运算符, 不能作为拼接符
逻辑运算
关系运算
三元表达式
empty运算
为空返回true,反之返回false
(3) 获取常用的开发对象
!!!pageContext:唯一可在el表达式中直接获取域对象中的值
!!!pageScope:代表pageContext域
!!!requestScope:代表request域
!!!sessionScope:代表session域
!!!applicationScope:代表ServletContext域
!!!param:代表所有参数的Map集合,可通过键获来获取值; Map<String, String>
paramValues: 代表获取一个键对应的多个值; Map<String, String[]>
header:代表请求头组成的map; Map<String, String>
headerValues:Map<String, String[]>
!!!cookie:代表Cookie信息组成的map; Map<String, Cookie>
注意:通过cookie获取得到的是Cookie对象,需要进一步通过Cookie名来获取指定的Cookie值 ${ cookie.username.value} //获取Cookie中的的username值
1 <% 2 Cookie c = new Cookie("cook","222"); 3 //pageContext.setAttribute("c",c); 4 response.addCookie(c); 5 %> 6 Cookie的值为:${ cookie.cook.value }
initParam:代表所有web应用初始化信息组成的map; Map<String, String>
3.JSTL标签库:
导库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> prefix:设置缩写成c
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" session="true|false"%>
---pageEncoding:可以指定 jsp文件保存的编码格式、传到浏览器时的编码格式、servlet响应到jsp参数的编码格式
---session:默认true ;为true表示一旦访问jsp时就会自动创建session对象,值为false则反之。
<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>
!!!<c:set var="<string>" value="<string>" target="<string>" property="<string>" scope="<string>" />
!!!<c:if test="<boolean>" var="<string>" scope="<string>">
...//为真时才会执行
</c:if>
!!!<c:forEach
items="<object>"
begin="<int>"
end="<int>"
step="<int>"
var="<string>"
varStatus="<string>"
>
底层封装了Java中的for,while,do-while循环。
forEeach中的varStatus属性:
!!!<c:choose><c:when><c:otherwise>
转载于:https://www.cnblogs.com/tongxuping/p/6935017.html
分分钟搞定 JSP 技术相关推荐
- 【ps】米饭工作室教你分分钟搞定“小问题”照片
五一出游是不是拍了很多照片?如果你有ps又不懂高深的修图技术,那么多照片修起来是不是很吃力?但不是每张照片拍的都可以直接上传,有些只是有些暗,或者只是有点儿歪,画面边上有人乱入,却又很想上传分享给朋友 ...
- endnote转化成纯文本后_如何用Endnote分分钟搞定参考文献
原标题:如何用Endnote分分钟搞定参考文献 解螺旋公众号·陪伴你科研的第1924天 Endnote教程第二弹来啦! 写论文离不了对参考文献的引用,Endnote在文献撰写中发挥着重要作用.下面我们 ...
- 永中word页码怎么从第二页开始_pdf如何在线转word?这样做,分分钟搞定pdf转word...
原标题:pdf如何在线转word?这样做,分分钟搞定pdf转word 上了初中以后,我感觉到学习压力更大了,特别是写作文.记得小学时,我的作文还被老师当堂表扬过,现在最多只能拿到合格线分数.为了提高语 ...
- C4D优质电商背景素材|分分钟搞定设计稿
优质的背景设计能很好的衬托出产品的气质.这类素材往往都是分层可编辑的格式,替换产品本身,加上文字设计,banner产品图分分钟搞定,广告设计稿也顿时高大上.这类素材要到专业提供网站,比如素材路上(ww ...
- 怎么扫描同网段mac地址linux,如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!!...
原标题:如何快速收集局域网内的IP+MAC信息?用这个扫描器分分钟搞定!!! 网 工 圈 中国圈内 最早的公益 公众号,本号已认证(关注近 5w+) 关注 科来MAC地址扫描器安装 1.右键" ...
- 快速搞定前端技术一面 匹配大厂面试要求学习笔记
快速搞定前端技术一面 匹配大厂面试要求学习笔记 第1章 课程介绍[说说面试的那些事儿] 本章会出几个面试题,分析每道题目设计的知识点,然后总结出一个完整的知识体系.让我们开始 "题目-> ...
- 一段代码完成所有分享功能,分分钟搞定分享功能
一段代码完成所有分享功能,分分钟搞定分享功能 效果如下: 代码: <div style="width:100%; height:30px;"> <div styl ...
- 视频教程-5G物联网云平台智能家居项目30天搞定-物联网技术
5G物联网云平台智能家居项目30天搞定 我叫连志安,现任职广东长虹技术研究所(国企).之前在康佳集团(国企).CVTE(上市公司)等公司任职.负责过Android TV.智能网关.路由器.智能家居.安 ...
- 计算机一级b证书图片p,只需两步,分分钟搞定证件照(内附福利)
原标题:只需两步,分分钟搞定证件照(内附福利) 简历中要不要放证件照? 当然要! 怎么样才能让证件照成为求职过程中的加分项? 不浮夸,不造作! 证件照怎么拍? 不要998,小V教你在家就能自制最美证件 ...
最新文章
- python event多线程回调
- 在Eclipse上安装插件springsource-tool-suite详解,完美不报错!以及yml无自动提示?
- 掌握这些知识点还怕工资上不了30k?(Java篇)
- Bootstrap4+MySQL前后端综合实训-Day06-AM【eclipse详细配置Tomcat、开发web项目、servlet、连接MySQL8.0数据库、用户登录界面的编写与验证、分页查询】
- RT-Thread I/O设备模型
- C# MD5,hmacSHA1
- 使C#代码现代化——第二部分:方法
- 语句摘抄——第13周
- access 有效性规则和有效性文本
- python股票涨停_Python与量化投资-股票复盘工具-2018-02-02
- 2017 TOMM-A Discriminatively Learned CNN Embedding for Person Re-identification
- OSChina 周日乱弹 —— 木兰,其实我喜欢你很久了
- skywalking了解及搭建使用
- ks8851网卡驱动在omap4460上的移植,发现开发板能发送数据,但是接受不到数据
- re管理器改android版本,RE管理器历史版本
- (转载)SPSS之相关分析与线性回归模型(图文+数据集)
- win的反义词_100个超简单的英语单词反义词,你必须知道(下)
- 面试宝典笔记:卷积计算过程中的FLOPs
- 顶峰Android手机视频转换器,顶峰——3GP手机视频转换器
- leaflet-离线地图
热门文章
- 自定义View实现Canvas炫酷效果
- Flutter开发之常用插件安装与卸载(11)
- linux centos7怎么绑定多ip,003 Linux配置多ip绑定的方法 | ip别名(以CentOS7为例 )
- 快速排序的难点_数据结构考研重难点解析:快速排序
- RibbitMQ 大数据分布式下的消息队列思
- c#正则表达式--环视
- C# 在异步中使用HttpWebRequest出现的“正在终止线程”错误的解决方案
- WCF错误远程服务器返回了意外响应: (413) Request Entity Too Large。解决方案
- redis启动异常处理一例
- 如何处理异常? catch Exception OR catch Throwable