JSP复习一

来源:互联网 发布:饥荒数据修改大全 编辑:程序博客网 时间:2024/05/15 00:03

摘要:jsp生命周期,jsp语法,jsp三大指令,jsp十大动作元素,JSP九大隐式对象

<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.util.Objects"

    pageEncoding="UTF-8" autoFlush="true" buffer="1094kb"%>
<!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>JSP复习</title>
</head>
<body>
<!-- jsp声明 -->
<%! 
  private int initVar=0;
  private int serviceVar=0;
  private int destroyVar=0;
%>  
<!-- 复写jsp生命周期方法 -->
<%!
  public void jspInit(){
    initVar++;
    System.out.println("jspInit(): JSP被初始化了"+initVar+"次");
  }
  public void jspDestroy(){
    destroyVar++;
    System.out.println("jspDestroy(): JSP被销毁了"+destroyVar+"次");
  }
%>
<!-- jsp脚本代码 -->
<%
  serviceVar++;
  System.out.println("_jspService(): JSP共响应了"+serviceVar+"次请求");
  String content1="初始化次数 : "+initVar;
  String content2="响应客户请求次数 : "+serviceVar;
  String content3="销毁次数 : "+destroyVar;

%>


<h1>第一部分:jsp生命周期</h1>
编译阶段:</br>
servlet容器编译servlet源文件,生成servlet类</br>
初始化阶段:</br>
加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法</br>
执行阶段:</br>
调用与JSP对应的servlet实例的服务方法</br>
销毁阶段:</br>
调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例</br>
<!-- jsp表达式 -->
<p><%=content1 %></p>
<p><%=content2 %></p>
<p><%=content3 %></p>
<!-- 获取请求所在的IP地址 -->

<%out.println("Your IP address is " + request.getRemoteAddr());%>


<%-- 该部分注释在网页中不会被显示--%> 
<h1>第二部分:jsp语法</h1>
<h3>IF...ELSE 实例</h3>
<%! int day = 3; %> 
<% if (day == 1 | day == 7) { %>
      <p>今天是周末</p>
<% } else { %>
      <p>今天不是周末</p>
<% } %>
<h3>SWITCH...CASE 实例</h3>
<% 
switch(day) {
case 0:
   out.println("星期天");
   break;
case 1:
   out.println("星期一");
   break;
case 2:
   out.println("星期二");
   break;
case 3:
   out.println("星期三");
   break;
case 4:
   out.println("星期四");
   break;
case 5:
   out.println("星期五");
   break;
default:
   out.println("星期六");
}
%>
<%! int fontSize; %> 
<h3>For 循环实例</h3>
<%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
   <font color="green" size="<%= fontSize %>">
    菜鸟教程
   </font><br />
<%}%>
<h3>While 循环实例</h3>
<%while ( fontSize > 1){ %>
   <font color="green" size="<%= fontSize %>">
    菜鸟教程
   </font><br />
<%fontSize--;%>
<%}%>
<input type="button" value="你好" onclick="msg()">
<script type="text/javascript">
function msg(){
alert("你好");
}

</script>


<h1>第三部分:jsp三大指令</h1>
<h3>page指令</h3>
Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。</br>
<h5>page属性</h5>
<ul>
<li>contentType:指定当前JSP页面的MIME类型和字符编码</li>
<li>errorPage:指定当JSP页面发生异常时需要转向的错误处理页面</li>
<li>isErrorPage:指定当前页面是否可以作为另一个JSP页面的错误处理页面</li>
<li>import:导入要使用的Java类</li>
<li>info:定义JSP页面的描述信息</li>
<li>isThreadSafe:指定对JSP页面的访问是否为线程安全</li>
<li>language:定义JSP页面所用的脚本语言,默认是Java</li>
<li>autoFlush:控制out对象的 缓存区</li>
<li>buffer:指定out对象使用缓冲区的大小</li>
</ul>
<h3>include指令</h3>
JSP可以通过include指令来包含其他文件。被包含的文件可以是JSP文件、HTML文件或文本文件。</br>
包含的文件就好像是该JSP文件的一部分,会被同时编译执行。</br>
<h3>taglib指令</h3>
JSP API允许用户自定义标签,一个自定义标签库就是自定义标签的集合。</br>
Taglib指令引入一个自定义标签集合的定义,包括库路径、自定义标签。</br>
<h1>第四部分:jsp十大动作元素</h1>
<h3>jsp:include动作元素</h3>
jsp:include动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。</br>
include指令是在JSP文件被转换成Servlet的时候引入文件,而这里的jsp:include动作不同,插入文件的时间是在页面被请求的时候。</br>
<jsp:include page="date.jsp" flush="false" />
<h3>jsp:useBean动作元素</h3>
jsp:useBean 动作用来加载一个将在JSP页面中使用的JavaBean。</br>
这个功能非常有用,因为它使得我们可以发挥 Java 组件复用的优势。</br>
<h3>jsp:setProperty动作元素</h3>
jsp:setProperty用来设置已经实例化的Bean对象的属性
<h3>jsp:getProperty动作元素</h3>
jsp:getProperty动作提取指定Bean属性的值,转换成字符串,然后输出。
<h5>Jsp 使用 JavaBean 实例</h5>
<jsp:useBean id="test" class="com.runoob.main.TestBean" />
<p>初始信息....</p>
<jsp:getProperty name="test" property="message" />
<p>修改中....</p>
<jsp:setProperty name="test" property="message" value="菜鸟教程..." />
<p>修改后信息....</p>
<jsp:getProperty name="test" property="message" />
<h3>jsp:forward动作元素</h3>
jsp:forward动作把请求转到另外的页面。jsp:forward标记只有一个属性page。
<!-- <h5>forward 动作实例</h5> -->
<%-- <jsp:forward page="date.jsp" /> --%>
<h3>jsp:plugin动作元素</h3>
jsp:plugin动作用来根据浏览器的类型,插入通过Java插件 运行Java Applet所必需的OBJECT或EMBED元素。</br>
如果需要的插件不存在,它会下载插件,然后执行Java组件。 Java组件可以是一个applet或一个JavaBean。</br>
plugin动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向Applet 或 Bean 传递参数。</br>
<h3>jsp:element 、 jsp:attribute、 jsp:body动作元素</h3>
jsp:element 、 jsp:attribute、 jsp:body动作元素动态定义XML元素。</br>
动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。</br>
<jsp:element name="xmlElement">
<jsp:attribute name="xmlElementAttr">
  属性值
</jsp:attribute>
<jsp:body>
  XML 元素的主体
</jsp:body>
</jsp:element>
<h3>jsp:text动作元素</h3>
jsp:text动作元素允许在JSP页面和文档中使用写入文本的模板</br>
<books>
<book>
<jsp:text>  
   Welcome to JSP Programming
</jsp:text>
</book>

</books>


<h1>第五部分:JSP九大隐式对象</h1>
<h3>request对象</h3>
request对象是javax.servlet.http.HttpServletRequest 类的实例。</br>
每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。</br>
request对象提供了一系列方法来获取HTTP头信息,cookies,HTTP方法等等。</br>
<h3>response对象</h3>
response对象是javax.servlet.http.HttpServletResponse类的实例。</br>
当服务器创建request对象时会同时创建用于响应这个客户端的response对象。</br>
response对象也定义了处理HTTP头模块的接口。通过这个对象,开发者们可以添加新的cookies,时间戳,HTTP状态码等等。</br>
<h3>out对象</h3>
out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。
out.print(dataType dt): 输出Type类型的值
out.println(dataType dt):输出Type类型的值然后换行
out.flush():刷新输出流
<h3>session对象</h3>
session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。</br>
session对象用来跟踪在各个客户端请求间的会话。</br>
<h3>application对象</h3>
application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。</br>
这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。</br>
通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性。</br>
<h3>config对象</h3>
config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象。</br>
这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。</br>
<h3>pageContext对象</h3>
pageContext对象是javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面。</br>
这个对象主要用来访问页面信息,同时过滤掉大部分实现细节。</br>
这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。</br>
pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等。</br>
PageContext类定义了一些字段,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE。</br>
<h3>page对象</h3>
这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。</br>
page对象就是this对象的同义词。</br>
<h3>exception对象</h3>
exception对象包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应。
</body>

</html>

参考资料:菜鸟教程

原创粉丝点击