JSP九大内置对象中四种作用域范围,EL表达式的运算符,servlet跳转方式和解决乱码,JSP的生命周期

//JSP脚本:在JSP页面中执行的java代码
<% java代码 %>

//JSP声明:在JSP页面中定义变量或者方法
<%! java代码 %>

//JSP表达式:在JSP页面中执行表达式
<%=java代码 %> //注意: 表达式不以分号结束

九大内置对象中四种作用域范围

① pageContext:只在本页面生效,服务端跳转和客户端超链接跳转无效
② request:只在本页面和服务端跳转生效,客户端超链接跳转无效
③ session:在本页面、服务端跳转、客户端超链接跳转、创建新窗口都生效,关闭浏览器后无效
④ application:在本页面、服务端跳转、客户端超链接跳转、创建新窗口、新浏览器打开都生效,关闭服务器后无效

EL表达式:用pageContext时作用域范围和pageContext一样,用request时作用域范围和request一样,用session时作用域范围和session一样,用application时作用域范围和application一样

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>首页</title>
</head>
<body>
	<h3>四种作用域范围</h3>
	<%
		String name = "张三";
	    
		//pageContext.setAttribute("name", name);
		
		//request.setAttribute("name", name);
		
		//session.setAttribute("name", name);
		
		application.setAttribute("name", name);
        
	%>
	<a href="test.jsp">进入test.jsp</a> <%-- 客户端式访问 --%>
	<%-- <jsp:forward page="test.jsp"></jsp:forward> --%> <%-- 服务端式访问 --%>
	<br><br>
	
	<%-- pageContext只在本页面生效,服务端跳转和客户端超链接跳转无效<br>
	pageContext.getAttribute("name") = <%=pageContext.getAttribute("name")%>
	<br><br> --%>
	
	<%-- request只在本页面和服务端跳转生效,客户端超链接跳转无效<br>
	request.getAttribute("name") = <%=request.getAttribute("name")%>
	<br><br> --%>
	
	<%-- session在本页面、服务端跳转、客户端超链接跳转、创建新窗口都生效,关闭浏览器后无效<br>
	session.getAttribute("name") = <%=session.getAttribute("name")%>
	<br><br> --%>
	
	application在本页面、服务端跳转、客户端超链接跳转、创建新窗口、新浏览器打开都生效,关闭服务器后无效<br>
	application.getAttribute("name") = <%=application.getAttribute("name")%>
	<br><br>
	
	EL表达式用pageContext时的效果和pageContext一样,
	用request时的效果和request一样,
	用session时的效果和session一样,
	用application时的效果和application一样<br>
	EL表达式 = ${name }
    
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>test页面</title>
</head>
<body>
	<h3>四种作用域范围</h3>
	<a href="index.jsp">返回index.jsp</a>
	<br><br>
	
	<%-- pageContext.getAttribute("name") = <%=pageContext.getAttribute("name") %>
	<br><br> --%>
	
	<%-- request.getAttribute("name") = <%=request.getAttribute("name") %>
	<br><br> --%>
	
	<%-- session.getAttribute("name") = <%=session.getAttribute("name") %>
	<br><br> --%>
	
	application.getAttribute("name") = <%=application.getAttribute("name") %>
	<br><br>
	
	EL表达式 = ${name }
    
</body>
</html>

EL表达式的运算符

== 等价于 eq

!= 等价于 ne

> 等价于 gt

< 等价于 lt

>= 等价于 ge

<=等价于 le

&& 等价于 and

|| 等价于 or

! 等价于 not

客服端跳转方式(重定向)

//客服端端跳转不能访问WEB-INF里面的JSP文件,加 / 时不会自动加上下文路径,不能使用request方式传值带到前端
//方式一(如果要在 index.jsp 前面加 / 就必须要用方式二的方法来获取上下文路径,不然会报404错误)
response.sendRedirect("index.jsp");
//方式二
response.sendRedirect(request.getContextPath() + "/index.jsp");

服务端跳转方式(转发)

//服务端跳转可以访问WEB-INF里面的JSP文件,能使用request方式传值带到前端
request.getRequestDispatcher("index.jsp").forward(request, response);

servlet中解决乱码问题【加在Servlet的doGet和doPost方法里面】

// 输入数据乱码解决:使用request对象获取浏览器提交数据前,先设置字符集
request.setCharacterEncoding("utf-8");
// 输出数据乱码解决:使用request输出数据前,先设置字符集和内容类型
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");

JSP页面的生命周期

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值