servlet与jsp

tomcat底层是一个socket程序

servlet、filter、listener是Javaweb开发的三大组件

动作标签

复制代码
<jsp:include page="header.jsp"></jsp:include>

指令标签 page指令标签 <%@page %> include指令标签<%@include %>

复制代码
<%@include file="header.jsp"%>

重定向req.getContentPath();重定向获取项目根路径

jsp脚本:

<% //这是一段可以写java代码的JSP脚本 //注意,这里面不能用jsp的注释方法

out.println("大家好,这里是Java语言输出的一段话");

%>

JSP的声明

<%!

//不仅可以声明变量,还可以声明方法。但是在jsp脚本中不能写java方法

int count(int x,int y) { return x+y; }

%>

JSP表达式

<h1>a=<%=a%> 10+20=<%=count(10,20)%></h1>

jsp9大内置对象

四个域对象

page范围: pageContext 只在一个页面中保存属性,跳转之后无效<%pageContext.setAttribute("appmsg","page")><%=pageContext.getAttribute("appmsg")%>

request范围:request 只在一次请求中保存,跳转之后依然有效<%=request.getAttribute("appmsg")%>

session范围:session 在一次会话范围中,无论何种跳转都可用<%=session.getAttribute("appmsg")%>

application范围:application 在整个服务器上保存 req.getServletContext().setAttribute("appmsg","testapplication")<%=application.getAttribute("appmsg")%>

域对象对应的空间对象 pageScope requestScope sessionScope applicationScope

响应对象:response

输出流对象:out

其他三个对象:servletConfig page exception

EL表达式:

list集合 {list.size} {list1}

map集合 {map.key} {map"key"} {map.b} {map"b"}

list和map表示存在域对象中的变量名

获取User中的数据 {user} {user.pwd}

{empty "str"}、{empty ""}、{empty null} 、{empty 不存在} false true true true

{empty list0}、{empty list1}、${empty listnull} true false true

{empty user}、{empty user("1")}、${empty usernull} false false true

JSTL:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 条件标签、迭代标签

<c:forTokens items="${str2}" delims="#" var="i">

${i}----->

</c:forTokens>

delims是分割符

对Map集合进行遍历:

<c:forEach items="${map}" var = "i">

{i}---\>{i.key}--->${i.value}

</c:forEach>

复制代码
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>格式化标签
复制代码
<fmt:formatNumber value="10" type="number" var="num"/>${num}
<fmt:formatNumber value="10" type="number"/>
<fmt:formatNumber value="10" type="percent"/>
<fmt:formatNumber value="10" type="currency"/>
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="10" type="currency"/>

<fmt:formatDate value="${date}" pattern="yyyy-MM-dd HH:mm:ss"/>

将指定的数字、日期格式化为具有一定格式的字符串

复制代码
<fmt:parseNumber value="100"/><br>
<fmt:parseNumber value="100" type="number"/><br>
<fmt:parseNumber value="100%" type="percent"/><br>
<fmt:parseNumber value="¥10.00" type="currency"/><br>

<fmt:parseDate value="2020-01-06" type="date"/><br>
<fmt:parseDate value="2020/01/06" pattern="yyyy/MM/dd"/><br>

将字符串解析为数字、Date

文件上传需要在servlet上添加@MultipartConfig注解

拦截器:@WebFilter("/servlet01") implements Filter doFilter方法filterChain.doFilter(req,resp)

三大域:request、session、application

HttpServletRequest、HttpSession、ServletContext

ServletContext.getAttribute("")

servletRequest.getParameter("")

相关推荐
水无痕simon1 小时前
15 转账对接文档
java·区块链
西凉的悲伤1 小时前
Java 基于 MySQL 行锁实现高并发业务序列号生成器
java·mysql·springboot·序列号生成
2603_965148111 小时前
抖音/快手直播选品:用API快速匹配爆款与低价货源
开发语言·python·自动化·api
RobinDevNotes1 小时前
轻量级动画引擎Anime.js迎来V4大版本更新
开发语言·前端·javascript·ecmascript·动画·c4前端
xieliyu.1 小时前
Java 文件IO :File 文件类、字节流、字符流讲解
java·ide·笔记·javaee
Hhy_11071 小时前
【从零开始学数据结构 ⑥】:二叉树之堆——打破规则的优先队列
c语言·开发语言·数据结构·学习·visual studio
云烟成雨TD1 小时前
Micrometer 系列【28】Spring Boot Actuator | 其他指标速览
java·spring boot·云原生
meilindehuzi_a1 小时前
深入理解 Linux 进程地址空间:从虚拟内存、页表映射到 fork 写时拷贝与 VMA 管理
java·linux·服务器
莫得感情 o2 小时前
设计模式 13 · 桥接模式
java·设计模式·桥接模式