当前位置: 首页 > news >正文

笔记3详情

# jsp元素 #
## 脚本元素 ##
1.jsp声明

可以用来声明变量或者方法
语法:<%! 声明1;声明2%>

	<%! int flag=1;
	int flag1=2;
	public int getFlag(){
		return 2;
	}
	%>
2.表达式

可以用来访问Java变量或者表达式
语法:<%=表达式 %>

	<%= flag %>
	<%= getFlag() %>
3.脚本片段

插入任意有效的Java程序片段
语法:<% %>

	<% user[] arr=new user[6];
	for(int i=0;i<5;i++){
		user u=new user();
		u.setUsername("u_"+i);
		arr[i]=u;
	}
	request.setAttribute("arr",arr);
	%>
补充:有时候需要导入包
语法:<%@ page import="url">

4.注释

	jsp注释:<%-- --%>
	HTML注释:<!-- -->
## 指令元素 ##
1.page指令

作用于整个页面,定义了与JSP页面相关的属性。
语法:<%@ page 属性1="" 属性2=""%>
	
	<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
2.include指令

经常用于包含页面底部或者首部等不经常变化的部分。
发生在jsp文件被转换成servlet的时候引入文件。
用来包含其它文件,可以是jsp,html或者文本文件。
语法:<%@ include  file="url"%>

	<%@ include file="second.jsp" %>
3.taglib指令

定义一个标签库以及其自定义标签的前缀。指定JSP页面所使用的标签库,通过该指令可以在JSP页面中使用标签库中的标签

	<!-- core:核心库 -->
	<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
	<!-- fmt:格式化库 -->
	<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
补充:需要导入两个架包:jstl-1.2.jar和standard-1.1.2.jar
## 动作元素 ##
1.<jsp:include>
用来包含静态和动态的文件。把指定文件插入正在生成的页面。
发生在页面被请求的时候。

属性:

Page 包含的文件路径

Flush 定义在包含资源前是否刷新缓存区

2.<jsp:userBean>

具体看示例:

	<!-- useBean用法 -->
	<jsp:useBean id="user" class="bean.user"></jsp:useBean>
	<!-- 设置 -->
	<jsp:setProperty property="age" name="user" value="33"/>
	<jsp:setProperty property="username" name="user" value="李四"/>
	<jsp:setProperty property="gender" name="user" value="男"/>
	<!-- 输出 -->
	name:<jsp:getProperty property="username" name="user"/>
	age:<jsp:getProperty property="age" name="user"/>
	gender:<jsp:getProperty property="gender" name="user"/>
补充:property属性的值,与你的Javabean中一致。

3.<jsp:forward>

把请求转到另一个页面。

<jsp:param> 它用来作为forward和include标签传递参数

first.jsp:
	
	<jsp:forward page="third.jsp">
	<jsp:param value="29" name="age"/>
	</jsp:forward>
third.jsp:

	<%= request.getParameter("age") %>

# 内置对象 #
	request

HttpServletRequest 代表客户端的请求信息,主要用于接收通过HTTP协议传送到服务器的数据。(包括头信息,系统信息,请求方式以及请求参数等)
request对象的作用域为一次请求

	response

HttpServletResponse 代表对客户端的响应,将JSP容器处理过的对象传回到客户端。
Reponse的作用域是JSP

	out

Javax.servlet.jsp.jspwriteout 
用于在web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。数据输出完毕以后,要及时关闭输出流。
out对象是一个 输出流,用来想客户端输出数据。

	pagecontext

Javax.servlet.jsp.PageContext
对象的作用是取得任何范围的参数,可以访问page、request、session、application范围的变量。
pageContext对象的创建和初始化都是由容器来完成的。

	session

Javax.servlet.http.HttpSession 
在一个jsp页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器通过session知道这个客户。
Session对象内部里使用Map类来保存数据。

	application

Javax.servlet.ServletContextApplication
将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。

	config

Javax.servlet.ServletConfigconfig
取得了服务器的配置信息。主要用于获取servlet的初始化参数信息。

	Cookie

Web服务器保存在用户硬盘上的一段文本。Cookie允许一个web站点在用户电脑上保存信息并且随后再取回。

	exception

Java.lang.ThrowableException 用于显示异常信息。

补充:exception使用

用errorPage和isErrorPage设置

first.jsp:
	
	<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp" isELIgnored="false"%>
error.jsp:

	<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>

# EL表达式 #
1.EL表达式默认开启,也可以使用isELIgnored设置,true表示关闭,默认是false
	
	<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="error.jsp" isELIgnored="true"%>
2.EL的内置对象

一共11个内置对象,不一一列举。

3.EL表达式读取四大域

${xxxx},全域查找名为xxx属性,查找顺序是page>request>session>application,如果不存在,输出空字符串

	${pageScope.xxx}
	${requestScope.xxx}
	${sessionScope.xxx}
	${applicationScope.xxxx}
4.EL表达式读取javabean

看示例:

	${user.username }
	${work.job }
5.EL表达式读取数组和集合(list,map)

1)访问数组:{数组名[index]}

2)访问list: {list名[index]}

3)访问map:{map对象.key} 

示例:

	<!--数组-->
	<% user[] arr=new user[6];
	for(int i=0;i<5;i++){
		user u=new user();
		u.setUsername("u_"+i);
		arr[i]=u;
	}
	request.setAttribute("arr",arr);
	%>
	<!--list-->
	<% List<user> list=new ArrayList<user>();
	user user1=new user();
	user1.setAge(15);
	user1.setGender("男");
	list.add(user1);
	request.setAttribute("list",list);
	%>

	<!-- 数组和list -->
	${arr[1].username }
	${list[0].age }
	${list[0].gender }

6.其他EL表达式运算

	<!-- empty和条件运算 -->
	empty运算:${empty info }
	条件运算操作:${flag>flag1?"大于":"小于" }

# JSTL #
JSTL四大标签库:

1.core:核心库【重点】

2.fmt:格式化库

3.sql:数据库标签库,过时

4.xml:xml标签库,过时

## core标签库(c库) ##
1.out和set

	<!-- out输出 -->
	<c:out value="username"/>
	<!-- set输入参数 -->
	<c:set var="code" value="xxx" scope="application"></c:set>
	<c:set var="ccc" value="lll" scope="session"></c:set>
	<!-- 根据var属性的值输出-->
	${code }
	${ccc }

2.url
	
	value:指定一个路径,它会在路径前面自动加上项目名
     <c:url value="/index.jsp"
     子标签:<c:param> 用来给url后面添加参数
	name:自动在url中添加参数名
	value:自动在url中添加参数值
     <c:url>
     	<c:param name="username" value="张山"></c:param>
     </c:url>
     var:指定变量名,一旦添加了就不会把url不会输出到页面,而是把生成的url保存到域中。
     scope:它与var一起使用,用来保存url
补充:我也不会ヽ(ー_ー )ノ

3.if

对应Java中的if语句

	<c:if test="布尔类型"></c:if>

if标签的test属性必须是一个boolean类型的值,如果test的值为true,那么执行if标签的内容,否则不执行

choose:对应Java中的if/else if/else 。

when标签的test为true时,会执行这个when的内容,当所有when标签的test都为false时,才会执行otherwise标签的内容

4.forEach

1.用来循环遍历数组,集合。
2.可以用来计算方法方式来循环。

计数方式:

	<c:forEach var="i" begin="1" end="10">${i}</c:forEach>
属性:

	var:循环变量
	begin:设置循环变量从几开始
	end:设置循环变量到几结束
	step:设置步长
用来输出数组,集合:

	<c:forEach items="${strs}" var="str">${str}<br/><c:forEach>
属性:

	items:指定要循环的对象,它可以是一个数组或者一个集合
	var:把数组和集合中的每个元素赋值给var指定的变量

5.其他等等

# ftm标签库 #
直接上示例:

	<!-- 格式化时间 -->
	<c:set var="now" value="<%=new java.util.Date() %>"/>
	时间:<fmt:formatDate value="${now }" pattern="yyyy-MM-dd hh:mm:ss"/><br>
	时间:<fmt:formatDate value="${now }" type="time"/><hr>
	
	<!-- 格式化数字 -->
	<c:set var="n" value="<%=flag%>"></c:set>
	<c:set var="nu" value="<%=num %>"></c:set>
	<c:set var="nu1" value="<%=num1 %>"></c:set>
	<!-- 四舍五入,不足补位 -->
	<fmt:formatNumber value="${n }" pattern="0.00"></fmt:formatNumber>
	<!-- 四舍五入,不足不补位 -->
	<fmt:formatNumber value="${nu }" pattern="#.##"></fmt:formatNumber>
	<fmt:formatNumber value="${nu1 }" pattern="#.##"></fmt:formatNumber>

  

转载于:https://www.cnblogs.com/zlh233/p/11252757.html

相关文章:

  • RectTransform的Bounds
  • 爱的十个秘密--4.给予的力量
  • 特效simulation space的设置,导致残留场景
  • unity网络线程和主线程出队列
  • C++网络编程--简单的WinSock代码
  • unity中UI界面的一些动画实现总结
  • Delphi调用CreateProcess创建进程
  • untiy打android包,报Could not resolve com.android.tools.build:gradle和Connect to 127.0.0.1:80 [/127.0.0.1
  • C#访问lua获取一个全局基本数据类型
  • C#访问lua获取一个全局基本数据类型——table映射成C#中class或struct
  • Linux学习笔记12——Unix中的进程
  • C#访问lua获取一个全局基本数据类型——table映射成C#中interface
  • C#访问lua获取全局函数——映射成delegate
  • C#访问lua获取一个table中的函数——映射成interface中的函数
  • C#访问lua获取全局函数——此函数带多个返回值
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • CentOS7简单部署NFS
  • css属性的继承、初识值、计算值、当前值、应用值
  • egg(89)--egg之redis的发布和订阅
  • input实现文字超出省略号功能
  • Java面向对象及其三大特征
  • js中forEach回调同异步问题
  • Meteor的表单提交:Form
  • php面试题 汇集2
  • Python学习笔记 字符串拼接
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • SpingCloudBus整合RabbitMQ
  • use Google search engine
  • WePY 在小程序性能调优上做出的探究
  • 对象管理器(defineProperty)学习笔记
  • 记一次和乔布斯合作最难忘的经历
  • 简析gRPC client 连接管理
  • 马上搞懂 GeoJSON
  • 我是如何设计 Upload 上传组件的
  • 学习使用ExpressJS 4.0中的新Router
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (二十四)Flask之flask-session组件
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (十)c52学习之旅-定时器实验
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)ABI是什么
  • (轉)JSON.stringify 语法实例讲解
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 读取 JSON格式的数据
  • .net 设置默认首页
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • []sim300 GPRS数据收发程序