JSP

JSP

在传统HTML文件中加入java程序片段,就构成了JSP页面

	<!-- java语言 -->
	<%
		
	%>
	<!-- 表达式 -->
	<%= %>

JSP指令元素:

  • page指令

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



  • include指令

<%@include file="index.jsp" %>

  • taglib指令

导入标签库

JSP动作元素:

	<!-- 动态包含  各自编译 -->
	<jsp:include page="hello.jsp">
		<jsp:param value="xiaobai" name="name"/>  <!-- 不能单独使用 -->
	</jsp:include>
	<jsp:forward page="error.jsp"></jsp:forward>
	<!--  创建对象  调用默认构造方法   (必须要含有默认构造方法)-->
	<jsp:useBean id="person" class="com.java.Person"></jsp:useBean>
	
	<!-- 设置对象的属性值 -->
	<jsp:setProperty property="name" name="person" value="小白"/>
	<jsp:setProperty property="age" name="person" value="18"/>
	
	<!-- 获取对象的属性值 -->
	<jsp:getProperty property="name" name="person"/>
	<jsp:getProperty property="age" name="person"/>

JSP内置对象:

九大内置对象:outrequestresponsesession、pageContext、application、config、page、exception

  • out

描述:想客户端输出数据
作用于:page
重要方法:print()     println()     write()       

	<%
		out.write("<h1>您好</h1>");
		out.print("<h1>您好</h1>");
		out.println("<h1>您好</h1>");
	%>

  • request

描述:来自客户端的请求经Servlet容器处理后由request对象进行封装
作用域:request
重要方法:

	<%		                
		request.getParameter(key);					//获取提交表单数据     
		request.getParameterValues(key);        	//获取提交表单的一组数据  
		request.getRequestDispatcher("list.jsp").forward(request,response);					//转发
		request.getAttribute();						//获取请求对象属性
		request.setAttribute();						//设置请求对象属性
		request.setCharacterEncoding("UTF-8");		//对请求数据重新编码,请求必须为POST转台才有效
	%>

  • response

描述:它封闭了JSP的响应,然后被发送到客户端以响应客户的请求
作用域:page
重要方法:

		response.sendRedirect("页面");			//页面跳转重定向 不带参数
		request.setCharacterEncoding("UTF-8");	//设置响应编码

  • session
描述:表示一个会话,用来存储用户信息。
作用域:session
重要方法:
	<%		
		session.getId();							//取得session的id
		session.isNew();							//判断session是否是新建
		session.setAttribute();						//在会话中设置一个属性
		session.getAttributeNames();				//得到会话中的属性
		session.removeAttribute();					//删除会话中的属性
		session.setMaxInactiveInterval(1000*60*30);	//设置会话失效时间
		session.invalidate();						//初始化当前会话
	%>
	<!-- 设置session有效时间 -->
	<session-config>
		<session-timeout>30</session-timeout>
	</session-config>

  • pageContext
描述:本JSP的页面上下文。
作用域:page

  • application
描述:从servlet配置对象获取得的servlet上下文
作用域:application   (作用域最大)

  • config
描述:本JSP的ServletConfig
作用域:page

  • page
描述:实现处理本页当前请求的类的实例,转换后的Servlet类本身
作用域:page

  • exception
描述:本JSP页面的异常对象
作用域:page

JSP常见错误状态码:
403:禁止访问。比如IP地址被拒绝,站点访问被拒绝。
404:找不到。没有找到目录或文件。
500:服务器由于遇到错误而不能完成该请求。
<!-- 错误信息页面 -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
<!-- 如果页面发生错误则跳转到error.jsp -->
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" errorPage="error.jsp"%>


表单参数传递

  • get请求:
显示请求方式,在URL显示,相对快,安全低,请求数据大小不能超过4K
Tomcat编码: server.xml
 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

  • post请求:
隐式请求,不在URL显示,相对慢,安全高


EL表达式

目的:为了使JSP写起来更加简单

	${sessionScope.user.name}
	${sessionScope.user["name"]}

JSTL标签库

全名JavaServer Pages Standard Tag Library  取代页面上的嵌入Java程序的做法。

jstl.jar

standard.jar

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>


基本标签
	<%-- 输出标签 --%>
	<c:out value="${name}"></c:out>
	
	<%-- 定义变量--%>
	<c:set var="age" value="23"></c:set>
	${age}
流程控制

	<%
		request.setAttribute("name","哇哈哈哈哈");
		request.setAttribute("age","18");
	%>
	
	<%-- 流程控制 --%>
	<c:if test="${not empty name}">
		<c:out value="不为空"></c:out>
	</c:if>
	
	<c:choose>
		<c:when test="${age<18}">
			<c:out value="未成年"></c:out>
		</c:when>
		<c:when test="${age>18}">
			<c:out value="已成年"></c:out>
		</c:when>
		<c:otherwise>
			<c:out value="18岁"></c:out>
		</c:otherwise>
	</c:choose>
迭代操作

	<%
		List<User> users = new ArrayList<User>();
		User u1 = new User("小白","不定",18);
		User u2 = new User("黑黑","男",20);
		User u3 = new User("宏红","女",16);
		User u4 = new User("君君","男",30);
		users.add(u1);
		users.add(u2);
		users.add(u3);
		users.add(u4);
		request.setAttribute("userList",users);
	%>
	<table border="1">
		<tr>
			<th>序号</th>
			<th>年龄</th>
			<th>性别</th>
			<th>年龄</th>
		</tr>	
		<!-- 
			varStatus属性状态:
				index		索引从0开始
				count		从1开始,当前遍历次数
				current		当前正在迭代的对象
				first		是否第一个
				last		是否最后一个
		 -->
		<c:forEach items="${userList}" var="user" varStatus="status">
			<tr>
				<td>${status.count}</td>
				<td>${user.name}</td>
				<td>${user.age}</td>
				<td>${user.sex}</td>
			</tr>
		</c:forEach>
	</table>
	<c:set  var="likes" value="吃饭,唱歌,泡牛"></c:set>
	
	<c:forTokens items="${likes}" delims="," var="val">
		${val}
	</c:forTokens>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值