zoukankan      html  css  js  c++  java
  • jsp学习与提高(一)——JSP生命周期、三大指令及动作

    1.jsp定义:

    1.1以java语言为脚本语言,运行在服务端的程序;

    1.2处理客户请求,生成页面

    1.3其本质是个sevlet会生成.java文件编译后再生成.class文件

    2.jsp生命周期(像普通的sevlet创建,默认是第一次访问时;当在web.xml中配置load-on-startup时,容器启动便创建)

    • 编译阶段:

      servlet容器编译servlet源文件,生成servlet类

    • 初始化阶段:

      加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法

    • 执行阶段:

      调用与JSP对应的servlet实例的服务方法

    • 销毁阶段:

      调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

    • 很明显,JSP生命周期的四个主要阶段和servlet生命周期非常相似,下面给出图示

    脚本程序的语法格式:
    <% java代码(包括逻辑和变量声明) %>
    JSP表达式:
    <%= 表达式 %>


    1.if else
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <% int day = 3; %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <h3>IF...ELSE 实例</h3>
    <% if (day == 1 | day == 7) { %>
    <p>今天是周末</p>
    <% } else { %>
    <p>今天不是周末</p>
    <% } %>
    </body>
    </html

    -----------------------------------------------------------------------------------------
    2.SWITCH...CASE 实例
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%! int day = 3; %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <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("星期六");
    }
    %>
    </body>
    </html>

    -----------------------------------------
    3.for循环
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%! int fontSize; %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <h3>For 循环实例</h3>
    <%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
    <font color="green" size="<%= fontSize %>">
    菜鸟教程
    </font><br />
    <%}%>
    </body>
    </html>

    ------------------------------------------------------
    4.while循环
    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%! int fontSize=0; %>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <h3>While 循环实例</h3>
    <%while ( fontSize <= 3){ %>
    <font color="green" size="<%= fontSize %>">
    菜鸟教程
    </font><br />
    <%fontSize++;%>
    <%}%>
    </body>
    </html>

    --------------------------------------------------------------------------------
    5.

    指令 描述
    <%@ page ... %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
    <%@ include ... %> 包含其他文件  (静态引入)
    <%@ taglib ... %> 引入标签库的定义
    -----------------------------------------------
    6.JSP 动作元素 <jsp:include page="***.jsp" flush="true" />
    以下我们定义了两个文件 date.jsp 和 main.jsp,代码如下所示:

    date.jsp文件代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <p>
    今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
    </p>
    main.jsp文件代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>

    <h2>include 动作实例</h2>
    <jsp:include page="date.jsp" flush="true" />

    </body>
    </html>
    现在将以上两个文件放在服务器的根目录下,访问main.jsp文件。显示结果如下:

    include 动作实例

    今天的日期是: 2016-6-25 14:08:17

    -------------------------------------------------------------------------------------------------
    7.调用Bean
    7.1建立bean
    package com.runoob.main;

    public class TestBean {
    private String message = "菜鸟教程";

    public String getMessage() {
    return(message);
    }
    public void setMessage(String message) {
    this.message = message;
    }
    }

    7.2调用bean
    现在让我们在main.jsp文件中调用该Bean:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>

    <h2>Jsp 使用 JavaBean 实例</h2>
    <jsp:useBean id="test" class="com.runoob.main.TestBean" />

    <jsp:setProperty name="test"
    property="message"
    value="菜鸟教程..." />

    <p>输出信息....</p>

    <jsp:getProperty name="test" property="message" />

    </body>
    </html>
    ---------------------------------------------------------------------------
    7.3<jsp:forward> 动作元素
    date.jsp 文件代码如下:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <p>
    今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
    </p>
    main.jsp文件代码:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>

    <h2>forward 动作实例</h2>
    <jsp:forward page="date.jsp" />
    </body>
    </html>
    现在将以上两个文件放在服务器的根目录下,访问main.jsp文件。显示结果如下:

    今天的日期是: 2016-6-25 14:37:25

  • 相关阅读:
    SQL SERVER 2005 行转列
    为什么jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON
    Silverlight 布局控件
    python socket connection
    linux下缓存的查看/修改
    openstackflat 网络问题
    Fail to start neutronserver
    copy module
    python ConfigParser
    itertools 介绍
  • 原文地址:https://www.cnblogs.com/tongcc/p/10961743.html
Copyright © 2011-2022 走看看