JSP(一)
开宗明义:JSP本质上就是一个Servlet
scriplet
JSP 变量和函数的声明
局部变量
<% int a = 3;>
全局变量和函数
<%! int a = 3;> //这里所谓的全局是在service方法之外的声明。
<%! int function();>
在JSP中输出表达式的值或者变量的值
<%= a%>
/*注意前面的小于号和百分号和等号必须紧挨,
否则会发生错误,另外不能加分号。因为转换成Servlet之后,
标记符里面的内容只是out.println()里面的参数而已.*/
JSP中的隐式对象
JSP中的所有隐式对象都会对应到Servlet/JSP API中的某个东西。以下是对应关系:
API 隐式对象
JspWriter ----------------------------- out
HttpServletRequest-----------------------request
HttpServletResponse----------------------response
HttpSession------------------------------session
ServletContext---------------------------application
ServletConfig----------------------------config
Throwable--------------------------------exception
PageContext------------------------------pageContext
Object-----------------------------------page
JSP的初始化
JSP的初始化参数
与常规Servlet配置初始化参数基本上是一样的,唯一的区别就是必须在servlet标记中增加一个元素
意思是:把这个servlet标记中的所有配置应用到由这个JSP页面生成的Servlet中。
覆盖jspInit()
在jspInit()方法中可以调用getServletConfig和getServletContext方法。
JSP中的属性
关于应用、请求、会话三个作用域来设置属性,与Servlet类似,只不过要按照上面的映射,把名字改一改而已。比如:
getServletContext.setAttribute("xxx",object)换成
application.setAttribute("xxx",object)
但是JSP还有一个页面作用域:pageContext。用其设置的属性,只在本页内可见。
JSP的指令
page指令
<%@ page import="xxx.xxx" session="false">
//用来引入包,或者设置本页内的属性。注意引入不同的包时候,要用逗号隔开
//后面的session表示页面内部是否有隐式session对象,true为有,false为无
//contentType定义响应的MIME内容
//pageEncoding定义JSP字符编码
taglib指令
<%@ taglib tagdir="path" prefix="xxx">//定义标记库
include指令
<%@ include file="xxxx"> //定义可重用的JSP代码
EL
EL的使用形式:${xxxx.xxxx}
表达式中第一个命名变量可以是一个隐式对象,也可以是一个属性
EL隐式对象
pageScope requestScope
sessionScope applicationScope
// 上面四个都是作用域属性的MAP
param parmaValues
//上面两个是请求参数的Map
header headerValues
//上面两个是请求首部的Map
cookie
initParam //这个是上下文(应用)初始化参数的Map
pageContext //唯一一个不是Map的隐式对象。
使用点号操作符访问性质和映射值
点号左边的变量要么是一个Map,要么是一个bean;点号右边是一个Map键或者一个bean属性。
如:${person.name}
使用方括号访问
方括号与点号相比的优势在于,除了点号上面的适用范围之外,左边还可以是一个List或者数组。
比如:
String[] list = {"aaa","bbb","cccc"};
${list[0]} 输出 aaa
${list["0"]} 还是输出aaa
注意:在数组或者list中的String索引会强制转换为int,如果无法转换,将报错。
除此之外,中括号里面还可以使用嵌套表达式。
作用域隐式对象
要注意:如果requestScope只是请求作用域属性的一个Map,但不是request对象本身。
如果希望在request对象上调用一个获取方法来得到自己想要的东西怎么办?
答:可以使用pageContext对象。
pageContext.request.method
那么requestScope有什么用处呢?
答:如果要区别不同作用域的对象,就能使用它。
以上介绍了EL的特性,关于EL还有很多特性,用到的时候,再查也可以。但是EL不是万能的,比如EL无法实现逻辑控制,如果用到了条件判断,还是得在JSP中插入Java代码。
但JSTL可以做到。请看下一篇博客。
JSP(一)的更多相关文章
- myeclipse学习总结一(在MyEclipse中设置生成jsp页面时默认编码为utf-8编码)
1.每次我们在MyEclispe中创建Jsp页面,生成的Jsp页面的默认编码是"ISO-8859-1".在这种情况下,当我们在页面中编写的内容存在中文的时候,就无法进行保存.如下图 ...
- jsp前端实现分页代码
前端需要订一page类包装,其参数为 private Integer pageSize=10; //每页记录条数=10 private Integer totalCount; //总记录条数 priv ...
- jsp中出现onclick函数提示Cannot return from outside a function or method
在使用Myeclipse10部署完项目后,原先不出错的项目,会有红色的叉叉,JSP页面会提示onclick函数错误 Cannot return from outside a function or m ...
- jsp页面无法识别el表达式的解决方案
今天在写一个springmvc的小demo时,碰到一个问题,在jsp页面中书写为${user.username}的表达式语言,在浏览器页面中仍然显示为${user.username},说明jsp根本不 ...
- 浅谈JSP中include指令与include动作标识的区别
JSP中主要包含三大指令,分别是page,include,taglib.本篇主要提及include指令. include指令使用格式:<%@ include file="文件的绝对路径 ...
- 浅谈JSP注释
HTML注释 JSP文件是由HTML尿急和嵌入的Java程序片段组成的,所以在HTML中的注释同样可以在JSP文件中使用.注释格式:<!--注释内容--> <!-- 欢迎提示信息! ...
- JSP 标准标签库(JSTL)
JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. JSTL支持通用的.结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签, ...
- Nginx服务器之Nginx与tomcat结合访问jsp
本文使用linux centos系统 本文概述: JSP是一种动态网页技术标准.使用的方式是在HTML文件中插入程序段和JSP标记,而形成JSP文件.使用JSP开发WEB应用可以跨平台开发.但jsp需 ...
- 基于jsp+servlet图书管理系统之后台万能模板
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
- JSP页面跳转的几种实现方法
使用href超链接标记 客户端跳转 使用JavaScript 客户端跳转 提交表单 客户端跳转 使用response ...
随机推荐
- 关于OC-省市区习题
对于省市区的问题,关键在于搞清楚数组嵌套字典,字典里面装数组的多重嵌套关系,沉下心来,捋清楚思路, 实在看不懂就多打几遍,这道题理解了,熟练了对之后学习很有好处. 代码如下: NSString *pa ...
- (原)android的JNI中使用C++的类
android的JNI代码中可以调用C++的类,但是不能直接调用,要加上一个类似于接口的java类,这个类内部调用C++的类.实际上和接口类直接调用C++中的函数差不多,只是稍微复杂了一点. 1. 写 ...
- 【转载】MongoDB中的MapReduce 高级操作介绍
转载自残缺的孤独 1.概述 MongoDB中的MapReduce相当于关系数据库中的group by.使用MapReduce要实现两个函数Map和Reduce函数.Map函数调用emit(key,va ...
- PHP_CURL请求教程, 内含简单粗暴curl
//curl访问 //需要url或者data //返回的数组是JSON数据形式 function ppd_curl($url,$data = null){ //\Think\Log::record($ ...
- VSFTP服务
互联网最开始的三大服务:HTTP.mail.FTP 一.文件服务器简介 FTP:在内网和公网使用.服务器:windows,Linux 客户端:windows,Linux samb ...
- [转]在ITunes播放中前进、后退五秒的快捷键
在ITunes播放中前进.后退五秒的快捷键 如题,快捷键为Command+Alt+方向键.听Podcast一两句没听清楚的时候很有用. reference: http://mac.pcbeta.com ...
- you can Solve a Geometry Problem too(hdoj1086)
Problem Description Many geometry(几何)problems were designed in the ACM/ICPC. And now, I also prepare ...
- SSAS父子层次结构的增强-UnaryOperatorColumn属性
上次我有讲到自定义汇总,这次的内容跟上次的差不多也算是自定义汇总,实现的方式不同而已!使用的是UnaryOperatorColumn属性. 这个属性说明: 一元运算符用于将成员自定义汇总到父级,汇总运 ...
- JVM启动过程——JVM之一
JVM是Java程序运行的环境,同时是一个操作系统的一个应用程序进程,因此它有自己的生命周期,也有自己的代码和数据空间. JVM体系主要是两个JVM的内部体系结构分为三个子系统和两大组件,分别是:类装 ...
- 新版703n刷openwrt
自带的官方固件: 3.17.1 Build 140120 Rel.56593n WR703N v1 00000000 在不能web页面刷固件,因为带了校验功能. 老外给出了不上TTL刷路由的方法: h ...