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("")

相关推荐
鹿角片ljp4 小时前
LeetCode 64:最小路径和复盘|二维 DP 与 ACM 模式完整写法
java·数据结构·算法
aramae4 小时前
模拟实现strcmp()(C语言)
c语言·开发语言·后端
泡海椒5 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
Beyond_System|系统之外6 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55237 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
wno7047 小时前
Spring Security权限控制
java·python·spring
杨运交8 小时前
[071][验证码模块]基于Spring拦截器的验证码认证设计思想
java·后端·spring
Geek-Chow8 小时前
CountDownLatch in Java
java
SL_staff8 小时前
从RBAC到场景化授权:《无忧·企业文档》三级权限模型的技术实践解析
java·开源·产品