关于Servlet和Jsp中的一些知识点随笔

本文探讨了请求转发和响应重定向的区别,包括代码实现方式,以及如何从HTML表单中获取数据。此外,还介绍了JSP中的EL表达式和JSTL的应用,包括条件判断、遍历集合和格式化标签的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、请求转发和响应重定向

转发和重定向在浏览器界面上都会跳转至另一个界面。不同的是通过转发跳转的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.sessionapplicationScope.Webrequest.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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值