JavaWeb基礎之一JSP語法(二) JSP基本語法(2)

四、JSP動作元素

1、<jsp:include>動作元素:提供了一種在JSP中包含頁面的方式。

<jsp:include>動作元素與include指令的區別:

include動作元素是在執行時對包含文件進行處理的,JSP頁面與它所包含的文件在邏輯上和語法上都是獨立的。當被包含的                 文件內容發生變化時,JSP頁面運行時可以看到所包含文件變化後的顯示結果。

       include指令包含的文件是靜態文件,如果被包含的文件內容發生變化,則JSP頁面運行時看到的仍然是變化前文件的內容,                  想看到變化後的文件內容,則需要重新保存該JSP頁面,然後再訪問它(需要重新將JSP頁面轉譯成Java文件

其中,包含兩個屬性:

page屬性:指定被包含文件的URL地址,是一個相對路徑。

flush屬性:指定當緩衝區滿時,是否將其清空,其默認值爲false

2、<jsp:forward>動作元素:用於頁面重定向的動作元素

語法格式:

	<jsp:forward  page="轉向頁面的URL地址"/>
  

      3、<jsp:param>動作元素:提供參數的附屬動作元素

語法格式:

	<jsp:param name="參數名稱" value="指定給param的參數值">

(1)、與<jsp:include>動作元素一起使用

include.jsp:

	 <body>
   	     <jsp:include page="sum.jsp">
    	        <jsp:param value="5" name="num"/>
   	     </jsp:include>
  	</body>

sum.jsp:

	<body>
    	     <%
    		String number = request.getParameter("num");
    		int num=Integer.parseInt(number);
    		int sum=0;
    		//累加求和
    		for(int i=1;i<=num;i++){
    		   sum+=i;
    		}
    	     %>
    	     <p>
     	         從1到<%=num %>之和:
    	         <%=sum %>
             </p>
 	 </body>

(2)、與<jsp:forward>動作元素一起使用

forward.jsp:

<body>
	<% 
	request.setCharacterEncoding("UTF-8" );//設置request編碼格式
	%>
  	<!-- 通過jsp動作元素,進行頁面轉發 -->
 	<jsp:forward page="userinfo.jsp">
 	<jsp:param value="張三" name="username"/>
 	<jsp:param value="24" name="age"/>
 	</jsp:forward>
  </body>

userinfo.jsp:
<body>
   <%
   	//request.setCharacterEncoding("UTF-8" );
   	//獲取request上的參數
   	String username = request.getParameter("username");
   	String age= request.getParameter("age");
    %>
    <!-- 輸出用戶信息 -->
    <%="用戶名:"+username %>
    </br>
    <%="年齡:"+age %>
  </body>
4、<jsp:plugin>動作元素:將服務器端的JavaBean或Applet下載到客戶端執行。

        

  

5、<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>動作元素

(1)、<jsp:useBean>動作元素:用來裝載一個將在JSP頁面中使用的JavaBean

語法格式:

	<jsp:useBean  id ="beanInstanceName" class = "classname" scope="page | request | session | application"/>
屬性說明如下:

         id:指定JavaBean的實例名。

   class:指定JavaBean的全限定類名。

 scope:指定引入的JavaBean實例的作用域,默認爲當然頁(page、request、session、application)。


(2)、<jsp:setProperty>動作元素:爲Bean實例設置或修改Bean中的屬性值。

語法格式:

       <jsp:setProperty name ="beanInstanceName" property="propertyName" value="value" />
屬性說明如下:

name:指定要進行設置的JavaBean的實例名。

   property:指定需要設置的JavaBean實例中的屬性名。

value:指定要將property中指定的屬性設置爲該屬性值。


(3)、<jsp:getProperty>動作元素:用來提取指定Bean屬性的值

語法格式:

	<jsp:getProperty name="beanInstanceName" property="propertyName" />
屬性說明如下:

name:指定要輸出的JavaBean的實例名。

property:指定需要輸出的JavaBean實例中的屬性名。

案例:展示用戶信息

User.java

  package com.imooc.po;

  public class User {
	private String username;
	private int age;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public User(String username, int age) {
		super();
		this.username = username;
		this.age = age;
	}
	public User() {
		
	}
	
 }
      userinfo.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>userinfo page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
<jsp:useBean id="user" class="com.imooc.po.User" scope="page"  />
<jsp:setProperty name="user" property="username" value="張三" />
<jsp:setProperty property="age" name="user" value="27"/>
    <!-- 輸出用戶信息 -->
     用戶名:
    <jsp:getProperty property="username" name="user" />
    </br>
    年齡:
    <jsp:getProperty name="user" property="age"/>
  </body>
</html>
  程序效果:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章