jsp一些基本知识

jsp的基本语法

<%!
		//声明,定义成员变量,成员方法,内部类
		String name;
		public void setName(String name){
			this.name = name;
		}
	%>
	
	<%
		//脚本,相当于service内容
		int a = 1;
	%>
	
	<%= a+".表达式,相当于out.println()" %>

jsp常用三大标签

 page标签属性:

	language="java"           java语言

	contentType="text/html; charset=UTF-8"    文件类型

    pageEncoding="UTF-8"      语言编码

    buffer="8kb"              默认是8kb

    errorPage=""              指定出错页面

    import=""                 import导包

    isELIgnored="false"       忽略el表达式,默认为false 打断腿属性

    isErrorPage="false"       如果为true,出错了就在此页面处理

    isThreadSafe="true"       是否线程安全

    session="true"            支持session
<body>
	include标签,包含的页面一起编译,不能有相同变量名:<br/>
	<%@ include file="header.jsp"  %>
	
	<%@ include file="footer.jsp"  %>
	<hr/>
	
	page标签:<br/>
    
	<hr/>
	taglib标签<br/>
	
</body>

jsp六个常用动作

<jsp:useBean id="user" class="com.gec.domain.User"></jsp:useBean>
	<jsp:setProperty property="name" name="user" value="张三"/>
	<jsp:getProperty property="name" name="user"/>
	
	<hr/>
	
	
	<% request.setCharacterEncoding("utf-8"); %>
	<jsp:forward page="header.jsp">
		<jsp:param value="张四" name="name"/>
		<jsp:param value="20" name="age"/>
	</jsp:forward>

forward动作内部跳转,浏览器显示链接是原页面链接,而不是跳转的新页面的链接。

include动作和include标签

区别

include动作,包含的页面分开编译,再包含进来,不存在重名问题。和include标签不同。
	<jsp:include page="header.jsp"></jsp:include><br/>
	<jsp:include page="footer.jsp"></jsp:include>
include标签,包含的页面一起编译,不能有相同变量名:<br/>
	<%@ include file="header.jsp"  %>
	
	<%@ include file="footer.jsp %>

相同

二者浏览器显示的链接相同,都是主页面的链接,而不显示被包含进来的页面链接。

jsp九大内置对象:

pageContext: jsp的上下文

application: 项目对象

request: 请求对象

session: session对象

response: 响应对象

config: servletConfig

out: jspWriter–> response.getWriter()

page: Object page = this

exception: 异常对象

请求过程 先找pageContext—>request—>session—>application

JSTL

循环标签

<!-- for(int i = 1;i<=10;i++ -->

	<c:forEach var="i" begin="1" end="10" step="1">

		${i}

	</c:forEach>



	<%

		ArrayList<String> arrayList = new ArrayList<>();

		arrayList.add("aa");

		arrayList.add("bb");

		arrayList.add("cc");

	%>

	<!-- 设置存储的范围域是session -->

	<%

		request.getSession().setAttribute("arrayList", arrayList);

	%>

	<!--  items:是要遍历的集合 var:表示遍历中的每个对象都存储session中 -->

	<c:forEach items="${sessionScope.arrayList}" var="arrayListI"> 

	 ${arrayListI} 

	</c:forEach>



	<!-- 书籍 -->

	<%

		List<Book> list = new ArrayList<>();

		list.add(new Book(1, "JavaScript权威指南", "David Flanagan"));

		list.add(new Book(2, "Effective Java中文版", "约书亚·布洛克"));

		list.add(new Book(3, "Java编程思想", " 埃克尔"));



		//request

		request.setAttribute("list", list);

	%>



	<br />

	<%

		List<Book> books = (List<Book>) request.getAttribute("list");

		for (Book bs : books) {

	%>

	<%=bs%><br />

	<%

		}

	%>



	<hr>

	<br />

	<c:forEach items="${list}" var="book">

		${book}<br />

	</c:forEach>



	<br>

	<hr>

	<%

		Map<Integer, Book> map = new HashMap<>();

		map.put(1, new Book(1, "JavaScript权威指南", "David Flanagan"));

		map.put(2, new Book(2, "Effective Java中文版", "约书亚·布洛克"));

		map.put(3, new Book(3, "Java编程思想", " 埃克尔"));



		//request

		request.setAttribute("map", map);

	%>



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

		${bk.key}<br />

		${bk.value}<br />

		${bk.value.name}<br />

		${bk.value.author}<br />

	</c:forEach>



	<hr><!-- 不加end属性就是遍历全部 -->

	<c:forTokens items="aa,bb,cc,dd" begin="0" delims=","

		var="aValue"> 

	 ${aValue} 

	</c:forTokens>

条件控制标签

<c:if>:单个判断

<c:choose>:用于复杂的判断

<c:when>if...else if

<c:otherwise>  else

fn标签

<%
		ArrayList<String> arrayList = new ArrayList<>();
		arrayList.add("aa");
		arrayList.add("bb");
		arrayList.add("cc");
	%>

	<!-- 设置存储的范围域是session -->
	<%

		request.getSession().setAttribute("arrayList", arrayList);

	%>

	${fn:length(sessionScope.arrayList) }<br/>

	${fn:contains("ABC", "a")}<br> 

	${fn:contains("ABC", "A")}<br> 

	前者返回“false”,后者返回“true”。

	

	<br/>忽略大小写:

	fn:containsIgnoreCase:${fn:containsIgnoreCase("ABC", "a")}<br> 

	                      ${fn:containsIgnoreCase("ABC", "A")}<br>

	                      

	<br/>

	fn:startsWith ("ABC", "ab"):${fn:startsWith ("ABC", "ab")}<br> 

	fn:startsWith ("ABC", "AB"):${fn:startsWith ("ABC", "AB")}<br>

	

	<br/>

	截取字符串fn:substring("ABC",1,2):${fn:substring("ABC",1,2)}<br>

fmt格式化标签

<%
		Date date = new Date();
		request.setAttribute("date", date);
	%>
	
	没有格式化前:${date }<br/>
	格式化后:<fmt:formatDate value="${date }" pattern="yyyy-MM-dd HH:mm:ss"/><br/>
	
	<c:set var="num" value="3.77777777"/>
	没有格式化前:${num }<br/>
	格式化后:<fmt:formatNumber value="${num }" pattern="#.##"></fmt:formatNumber>

EL表达式

算术表达式

<%=1+1 %><br/>

  1+1:${1+1 }<br/>

  1-1:${1-1 }<br/>

  2*3:${2*3 }<br/>

  10/5:${10/5 }<br/>

  10%3:${10%3 }<br/>

逻辑表达式

  逻辑表达式<br/>

  true&&true :${true&&true }<br/>

  true&&false :${true&&false }<br/>

  true||true:${true || true }<br/>

  false||true:${false||true}<br/>

关系表达式

  关系表达式<br/>

  1 == 1:${1==1 }<br/>

  1 != 1:${1!=1 }<br/>

  1 > 1:${1>1 }<br/>

  1 <= 1:${1<=1 }<br/>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值