JSP基础--基础知识、四大域及九大隐式对象

基础知识

JSP文件执行过程



JSP页面的构成

它是有静态内容和动态内容构成
静态内容 :指的HTML页面元素
动态内容:指令元素,脚本元素,动作元素,注释等。
a:指令元素
语法格式:
<%@   指令名称  属性=属性值  %>
指令元素有三种:page,include,taglib.
1:page指令:该指令用于整个页面,定义与页面相关的属性,一般放在JSP页面的第一行。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
2:include指令用于在JSP页面包含一个文件。该文件可以是JSP页面,也可以是HTML网页
    或者文本文件或者一段JAVA代码。用它可以简化页面代码和提高代码的重用性。
语法如下:
<%@include file="文件的URL路径" %>
3:taglib指令允许页面使用定制的标签或者JSP自身提供的标签:
格式如下:
<%@ taglib uri="url"   prefix="前缀"%>
如:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><!--迭代标签-->
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %><!--国际化标签和数据日期格式化->

b:脚本元素 
其实就是告诉我们怎么在jsp页面写java代码
<%= %> 表达式:
<%! %> java方法 变量定义,方法定义
<% %>  java代码 逻辑处理

c:动作元素
动作是特殊的标记,通过一个动作标记可以实现多行Java代码实现的效果。
可以动态插入文件、重用JavaBean组件导向另一个页面等。
动作元素和指令元素不同,动作元素是在客户端请求时动态执行的,每次有客户端请求时可能都会被执行一次,而指令元素是在编译时被编译执行,它只会被编译一次。
我们将在讲述jsp标签库的时候结合动作指令讲解。

d:注释
就是在代码里的注释,最终用户看不到,只是便于开发人员维护和阅读。

四大域及九大隐式对象

四大域
application:相当于我们存储在ServletContext对象的值,ServletContext是一个全局对象,如果关闭,则小时
session:相当于我们存储在httpSession对象的值,httpSession是一个会话对象,关闭浏览器,则消失
request:相当于我们存储在HttpRequest对象的值,如果请求完毕,则消失
page:相当于我们存储在Servlet的私有变量,只在当前页面起效,关闭页面则消失
九大隐式对象
request--HttpServletRequest
response--HttpServletResponse
out--PrintWriter
session--HttpSession
application--ServletContext
config--ServletConfig
pageContext--PageContext,提供对JSP页面所有对象以及命名空间的访问
page--类似Java中的this

代码1==index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@include file="included.jsp" %> 
	<h1>ahahah</h1>
	<div>
		<h1><%=getName() %></h1>
		<%!
			public static String a = "haha";
			public static String getName(){
			return a+"=>Yes-------------";
			
		}
		%>
	</div>
	<!-- 四大域 application session request pageContext  -->
	<!-- 九大隐式对象 -->
	<div>
		<%
		//给 application赋值
		application.setAttribute("testApplication", "Hello Application!");
		//给 session 赋值
		session.setAttribute("testSession", "Hello Session!");
		%>
	</div>
	
	<form method="post" action="jsp01.jsp">
	<div>
		<input type="text" name="userName">
		<input type="submit" value="提交">
	</div>
	</form>
	
</body>
</html>

代码2==jsp01.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
String testWeb = application.getInitParameter("testParam");
String testapplication = (String)application.getAttribute("testApplication");
String testSession = (String)session.getAttribute("testSession");
String testRequest = request.getParameter("userName");
String testPageContext = (String)pageContext.getSession().getAttribute("testSession");
//5S刷新跳转到index.jsp
//response.setHeader("refresh", "5;URL=index.jsp");
%>

<dir>
	web.xml中context-param的赋值为:<%=testWeb %><br>
	application赋值为:<%=testapplication %><br>
	session赋值为:<%=testSession %><br>
	request赋值为:<%=testRequest %><br>
	<% out.print(testapplication+"=>我是out对象取的值!<br>"); %>
	pageContext取得Sesion的赋值:<%=testPageContext %><br>
	config取得Servlet的赋值:<%=config.getServletName() %><br>
	page的属性:<%=page.toString() %><br>
</dir>

</body>
</html>

执行:

http://127.0.0.1:8080/jsp1/jsp01.jsp

输出的值

web.xml中context-param的赋值为:testParam1
application赋值为:Hello Application!
session赋值为:Hello Session!
request赋值为:tijiao
Hello Application!=>我是out对象取的值!
pageContext取得Sesion的赋值:Hello Session!
config取得Servlet的赋值:jsp
page的属性:org.apache.jsp.jsp01_jsp@7a4df7ba



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值