JSP基础知识学习
笔者对于JSP也是初学,写这篇文章的主要目的是方便自己去理解JSP的相关内容。
一、JSP概述
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
JSP,中文名称为Java服务器页面,相应的其对应的便是jsp文件。在jsp文件里面可以编写Java代码也可以编写HTML代码,简单的理解就是jsp就是可以写java代码的html,,当然这里面也可以有xml、xhtml等等。通过编写jsp文件,我们可以在HTML网页中动态嵌入元素,调用Java的一些API等等,很灵活。
二、JSP实例学习
上面就是一个非常简单的jsp文件,很容易看出它和html文件非常相似,只是多了配置说明和Java语句。
上面这一句是jsp文件的配置说明,注意语句格式是====
page contentType=“text/html;charset=UTF-8”
表示文档类型,“text/htm”表示是文本html,“charset=UTF-8”表示字符集为UTF-8,编程一般涉及中文都默认用UTF-8。
language=“java”
说明是Java语言的,其实这一句有点多余,默认就是java语言,这一句可以删除。
在jsp文件里面,注释是用====,比html的注释多了个百分号。
在jsp里面写Java代码,也并不是就直接写,也要有限定,主要限定如下:
申明变量或方法,这里面申明的变量是全局的
申明变量或方法,这里面申明的变量是局部的
用于输出表达式到浏览器,这里面的表达式不能跟分号
三、EL表达式学习
EL(Expression Language)表达式,是为了简化jsp中的Java代码的一种语言格式。其一般格式为
${表达式}
jsp默认支持el表达式的,如果要忽略el表达式,则可以
设置jsp中page指令中:isELIgnored=“true” 忽略当前jsp页面中所有的el表达式
${表达式} :忽略当前这个el表达式
(1)EL表达式的运用
el表达式的用处主要体现在
运算
直接写运算表达式即可。
获取值
注意el表达式获取值只能通过域对象获取。语法为
${域名称.键名}:从指定域中获取指定键的值
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止。
相应的所涉及的四大域域名称为:
pageScope --> pageContext
requestScope --> request
sessionScope --> session
applicationScope --> application(ServletContext)
(2)完整代码实例学习
下面是一个关于使用el表达式的完整代码,可参考参考。
计算
${1+2}
${1<2}
empty运算符判断是否为空或者长度是否为0
${empty requestScope.arr}
${empty requestScope.str}
${empty requestScope.users}
获取值
${requestScope.name}
${sessionScope.password}
${name}
获取对象
${requestScope.user}
${requestScope.user.name}
获取list的值
${requestScope.list}
${requestScope.list[0]}
${requestScope.list[1]}
获取map的值
${requestScope.map}
${requestScope.map.name}
${requestScope.map["name"]}
四、JSTL学习郑州人流多少钱 http://www.hnmt120.com/
JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。
和el表达式一样,jstl也是为了简化jsp里面的java代码的。
注意使用jstl要导入相应的包,包的下载及导入可参考大佬的博客jstl的jar包的下载。
(1)JSTL的运用
常用的jstl标签有:
if:相当于java代码的if语句
c:if标签没有else情况,想要else情况,则可以在定义一个c:if标签
choose:相当于java代码的switch语句
使用choose标签声明 相当于switch声明
使用when标签做判断 相当于case
使用otherwise标签做其他情况的声明 相当于default
foreach:相当于java代码的for语句
- 完成重复的操作
* 属性:
begin:开始值
end:结束值
var:临时变量
step:步长
varStatus:循环状态对象
index:容器中元素的索引,从0开始
count:循环次数,从1开始
- 遍历容器
* 属性:
items:容器对象
var:容器中元素的临时变量
varStatus:循环状态对象
index:容器中元素的索引,从0开始
count:循环次数,从1开始
(2)JSTL实例学习
下面是完整的jstl代码,可参考。
真
星期一
星期二
星期三
星期四
星期五
星期六
星期天
数字输入有误
${s.index}
${s.index}
${num}