web第7天(EL表达式,JSTL标签,servlet)
EL表达式和JSTL标签库
EL表达式
全称:expression language表达式语言,主要是从作用域中获取值
格式:${}
pageContext
request
session
application
注意:需要把值设置到作用域中
例:EL表达式获取对象
先获取到上一个界面的值
String name=request.getParameter("user");
String pass=request.getParameter("pass");
然后创建对象,并将值设置进去
User user=new User();
user.setUser(name);
user.setPass(pass);
将对象设置到作用域中
request.setAttribute("user", user);
request.setAttribute("pass", pass);
获取到对象的内容:
${user}
${user.name}
${user.pass}
注意:获取对象的值不需要调用get方法,只需要点它的属性即可
获取第一个集合中的name属性值
${list[0].name }
JSTL标签库
JSTL标签库:jsp页面中的标签库,又称c标签
步骤:
- 需要将jar包加到lib下,然后Build Path-->Add Build Path
- 需要导包:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- c:if
<!-- test属性:判断条件 -->
<c:if test="${user.name=='admin' }">
<div>用户名正确</div>
</c:if>
- c:forEach
<!-- items属性:表示要遍历的对象(集合)
var属性:表示遍历出来的内容
varStatus属性:相当于是循环中的i变量,可以用来获取循环的次数
-->
<c:forEach items="${list }" var="users" varStatus="status">
<p>用户名:${users.name }</p>
<p>用户名:${users.pass }</p>
<p>当前用户序号:${status.count }</p>
</c:forEach>
- c:choose
<c:choose>
< c:when test="${user.pass=='123' }">
密码正确
</c:when>
<c:otherwise>
密码不正确
</c:otherwise>
</c:choose>
- c:out
如果内容中包含特殊的如p标签这样的,系统可能会自动解释,不会原样输出,如果需要原样输出,可以通过设置escapeXML属性值来设置转义(true表示转义)
fmt:日期标签
value:日期的值
pattern:日期的格式
注意:需要导包<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<fmt:formatDate value="${news.createDate }" pattern="yyyy年MM月dd日"/>
servlet
-
servlet:由server applet组成(服务连接器)
-
作用:servlet本身是不做任何业务处理的,只负责接收get或者post请求,然后决定取到哪个页面(转发/重定向)
-
面试题,servlet的生命周期?
1,实例化(构造方法)
2,初始化(赋值->init方法)
3,处理请求(doGet/doPost或者service方法)
4,销毁(destroy方法) -
servlet的使用需要在web.xml中配置
找到指定的servlet文件
<servlet>
//servlet的名字,为了让另一对<servlet-mapping>能通过名字找到指定的java类
<servlet-name>loginServlet</servlet-name>
//表示servlet的java类所在的位置
<servlet-class>servlet.LoginServlet</servlet-class>
</servlet>
//servlet的映射标签
<servlet-mapping>
//servlet的名字,对应<servlet>标签中的name
<servlet-name>loginServlet</servlet-name>
//前端表单提交action属性中的路径名
<url-pattern>/login</url-pattern>
</servlet-mapping>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?