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

来源:互联网 发布:数据库工作是干什么的 编辑:程序博客网 时间:2024/06/07 08:59

基础知识

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--HttpServletRequestresponse--HttpServletResponseout--PrintWritersession--HttpSessionapplication--ServletContextconfig--ServletConfigpageContext--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的赋值为:testParam1application赋值为:Hello Application!session赋值为:Hello Session!request赋值为:tijiaoHello Application!=>我是out对象取的值!pageContext取得Sesion的赋值:Hello Session!config取得Servlet的赋值:jsppage的属性:org.apache.jsp.jsp01_jsp@7a4df7ba



0 0
原创粉丝点击