jsp介绍
JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准,本质是一个简化的Servlet 设计。
jsp与Servlet的区别
JSP偏向页面显示,Servlet更擅长于逻辑控制。
Servlet中没有内置对象,JSP中的内置对象都是必须通过HttpServletRequest对象以及HttpServlet对象得到。JSP是Servlet的一种简化,使用JSP只需要完成程序员需要输出到客户端的内容,JSP中的Java脚本如何镶嵌到一个类中,由JSP容器完成。而Servlet则是个完整的Java类,这个类的Service方法用于生成对客户端的响应。
JSP在本质上就是Servlet,但是两者的创建方式不一样。Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet来生成动态网页;JSP由HTML代码和JSP标签构成,可以方便地编写动态网页
因此在实际应用中采用Servlet来控制业务流程,而采用JSP来生成动态网页.在Struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层。
jsp 中的脚本 语法: 1.<%中间去编写java代码%> 2.<%! 1.变量是成员变量 2. 可以申明方法 %> 3.<%=i%> ==>输出 类似于out.print()
4.小脚本不能写标签,只能写java代码,可以混合使用
jsp 中的三大指令:1.page 指令 <%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
contentType 表示页面的类型 一局编码格式 默认就是UTF-8 language 表示语言 import 表示导包
errorPage=“error.jsp” 界面发生异常所跳转的界面 pageEncoding=“UTF-8” 设置编码格式 autoFlush=“true” 是否自动来刷新这个界面
2 <%@include file=""%> ==>一般用于引入公共的界面 file 的值就是文件的路径 3. <%@taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt” %> 引入第三方的标签库 prefix 设置的名字 uri 表示引入标签可以的地址
el表达式
el 表达式 ==>作用就是减少页面的java代码 1.使用el表达可以获取到作用域下的值
2.可以做一些基本上都运算
3.避免一一些错误的产生
语法: 1.获取简单的键值对 ==>${msg}
2.对象的获取> ${user.uname} >1.这个对象必须给其set get方法
3.获取数组: ${str[0]}
4.获取map对象的值>
m
a
p
.
k
e
y
2
=
=
>
1.
前
后
的
泛
型
都
必
须
给
一
致
5.
获
取
集
合
=
=
>
{map.key2} ==>1.前后的泛型都必须给一致 5.获取集合 ==>
map.key2==>1.前后的泛型都必须给一致5.获取集合==>{list.get(0)} ${list[0]}
6.获取集合对象的语法: ${userList[0].uname}
jstl 表达式
一般是与el表达式来进行搭配 1.用于判断 <c:if> 2.用于循环的 <c:foreach>
使用jstl表达式的步骤:1.导入相关的jar
2.在头部引入其标签库
<%@taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %> prefix 表示取的名字 uri 表示引入标签库的地址
<c:foreach> items="
u
s
e
r
L
i
s
t
"
=
=
>
需
要
遍
历
的
作
用
域
下
的
集
合
=
=
>
通
过
e
l
表
达
式
来
获
取
v
a
r
=
"
u
s
e
r
"
=
=
>
每
次
遍
历
产
生
对
象
的
别
名
v
a
r
S
t
a
t
u
s
=
"
i
n
d
e
x
"
=
=
>
遍
历
的
索
引
b
e
g
i
n
=
"
1
"
起
始
位
置
s
t
e
p
=
"
2
"
=
=
>
波
长
e
n
d
=
"
4
"
结
束
位
置
<
c
:
i
f
t
e
s
t
=
"
{userList}" ==>需要遍历的作用域下的集合 ==>通过el表达式来获取 var="user" ==>每次遍历产生对象的别名 varStatus="index" ==>遍历的索引 begin="1" 起始位置 step="2" ==>波长 end="4" 结束位置 <c:if test="
userList"==>需要遍历的作用域下的集合==>通过el表达式来获取var="user"==>每次遍历产生对象的别名varStatus="index"==>遍历的索引begin="1"起始位置step="2"==>波长end="4"结束位置<c:iftest="{userList !=null}"> ==> test 里是条件表达式