一、请求转发和响应重定向
转发和重定向在浏览器界面上都会跳转至另一个界面。不同的是通过转发跳转的URL地址栏不会产生变动。而重定向会产生新的URL;其本质的区别在于使用转发的时候,浏览器只会向服务器发送一个请求;而重定向则会发送两条请求。
请求转发代码实现:
request.getRequestDispatcher(转发至的接收地址;不用增加上下文路径).forward(request,response);
响应重定向代码实现:
response.sedRedirect(同上;需要增加上下文路径).forward(request,response);
二、从html表单中获取数据
<body>
<form action="/上下文路径/制定servlet地址">
<input name="name"/>
</form>
</body>
同时在servlet中通过
request.getParameter(“name”);来获取表单中输入的数据;
三、jsp中的El表达式和JSTL应用
El表达式使用
代
码
块
来
书
写
帮
助
减
少
代
码
量
;
常
用
作
用
域
对
象
及
表
达
方
式
:
p
a
g
e
S
c
o
p
e
.
获
取
当
前
页
面
对
象
;
r
e
q
u
e
s
t
S
c
o
p
e
.
获
取
请
求
中
的
对
象
;
s
e
s
s
i
o
n
S
c
o
p
e
.
获
取
存
储
在
s
e
s
s
i
o
n
中
的
对
象
;
a
p
p
l
i
c
a
t
i
o
n
S
c
o
p
e
.
获
取
W
e
b
全
局
对
象
;
∗
∗
对
于
通
过
r
e
q
u
e
s
t
.
g
e
t
P
a
r
a
m
e
t
e
r
(
)
获
取
的
对
象
在
E
l
表
达
式
中
可
以
用
{代码块}来书写 帮助减少代码量; 常用作用域对象及表达方式: pageScope.获取当前页面对象; requestScope.获取请求中的对象; sessionScope.获取存储在session中的对象; applicationScope.获取Web全局对象; **对于通过request.getParameter()获取的对象在El表达式中可以用
代码块来书写帮助减少代码量;常用作用域对象及表达方式:pageScope.获取当前页面对象;requestScope.获取请求中的对象;sessionScope.获取存储在session中的对象;applicationScope.获取Web全局对象;∗∗对于通过request.getParameter()获取的对象在El表达式中可以用{param.}的方式来输出**
JSTL核心库
通过<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %> 来获得核心库,前提下载安装jar包;
JSTL判断标签
相对简单的条件判断:
<c:if test="${a>b}">
输出页面
</c:if>
<c:if test="${a<b}">
输出页面2
</c:if>
嵌套条件判断:
<c:choose>
<c:when test="${a<0}">
负数
</c:when>
<c:when test="${a=0}">
0
</c:when>
<c:otherwise >
正数
</c:otherwise>
</c:choose>
JSTL遍历集合
<c:forEach items="${requestScope.lists}" var="list" varStatus="idx">
<h2> ${idx.index} ${list} </h2>
</c:forEacj>
idx.index代表存在数组中的位置从0开始;
可以看做Java代码中的for循环对数组的遍历:
for(List list:lists){
System.out.println(list)
}
格式化标签
通过<%@ taglib uri=“http://java.sun.com/jsp/jstl/fmt” prefix=“fmt” %> 来获得格式化标签库,前提下载安装jar包;
日期格式:
<fmt:formatDate value="数据来源" pattern="yyyy年MM月dd日HH时mm分ss秒SSS毫秒">
(HH表示24小时制;hh表示12小时制)
数字格式
<fmt: formatNumber value="数据来源" pattern="0.00">
0.00表示数据中保留两位小数点如:3.14
0,000.00表示以千为单位输出这个数字如:1,562,486.23