程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 第三課 - JSP:useBean 用法和詳解

第三課 - JSP:useBean 用法和詳解

編輯:關於JSP

 

第三課 - JSP-useBean 用法和詳解



一丨基本要素

Bean類:
1.必須要有一個空的構造器,在JSP元素創建Bean時會調用空構造器 2.不能有任何公共實例變量,(也就是說不允許直接通過變量名訪問變量),並且變量名首字母必須小寫。 3.通過getter/setter方法來讀寫變量的值,並且方法中變量的首字母必須大寫。 4.不要使用裸體類(要打包) 5.補充,最好實現 java.io.Serializable接口,使其轉化為byte流,
(可以通過反編譯,更好地消除一地網絡的數據差異,其他好處請百度。)



二丨基本用法

代碼如下:



/*id 實例化出來後的引用名稱
class Bean類scope 即變量的作用域,默認是page.(page即頁面局部變量,request范圍,session范圍,application范圍)
type 默認和class一樣,就是把new出來的BeanClass當成TypeName來用。(父類引用指向子類對象)
相當於 java 語句:*/
package.BeanClass beanName=null,TypeName=null;
TypeName beanName = new package.BeanClass();



/*name Bean類實例化後的變量名 
property Bean類的私有成員變量
value 賦值 
相當於 java 語句:*/
beanName.setProperty(value);



/*	 name Bean類實例化後的變量名	
property Bean類的私有成員變量 	
相當於 java 語句:*/

out.write(beanName.getProperty());
標准實例 Student.java
package com.qsuron.study;
public class Student implements java.io.Serializable{
	private String name;
	
	public  String getName() {
		return name;
	}


	public  void setName(String name) {
		this.name = name;
	}
}
UseBean.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@page import=com.qsuron.study.* %>

取出的值是:



三丨Scope 詳解 - page request session application

Bean.java
package com.qsuron.study;

public class Bean implements java.io.Serializable{
	private int count = 0;

	public int getCount() {
		count++;
		return count;
	}

	public void setCount(int count) {
		this.count = count;
	}
}

PageBean.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@page import=com.qsuron.study.* %>

scope:page

取出的值是:


RequestBean.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@page import=com.qsuron.study.* %>
<%--相當於 com.qsuron.study.Bean bean = (Bean)request.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); request.setAttribute(bean,bean); } --%> <% bean.setCount(100); %>/>

scope:request1

<%--RequestBean2 返回101 --%> <%----%> <%--RequestBean2 返回1 --%> <% response.sendRedirect(RequestBean2.jsp);%>
請注意注釋部分,如果不明白,請查照博文-(

第二課 - Jsp之Forward & SendReDirect 的區別

)


RequestBean2.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@page import=com.qsuron.study.* %>
<%--相當於 com.qsuron.study.Bean bean = (Bean)request.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); request.setAttribute(bean,bean); } --%>

scope:request2

取出的值是:

forward - 正常遞增 sendRedirect - 重新初始化

SessionBean.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@page import=com.qsuron.study.* %>
<%--相當於 com.qsuron.study.Bean bean = (Bean)session.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); session.setAttribute(bean,bean); } --%>

scope:session

取出的值是:


相同窗口正常遞增,新建窗口則重新初始化
ApplicationBean.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@page import=com.qsuron.study.* %>
<%--相當於 com.qsuron.study.Bean bean = (Bean)session.getAttribute(bean); if(bean == null){ bean = new com.qsuron.study.Bean(); session.setAttribute(bean,bean); } --%>

scope:application

取出的值是:


不重啟Tomcat,則正常遞增。重啟則重新初始化。


四丨其他相關語法

param參數

//直接把從上一個頁面通過重寫URL傳遞來的 URLparam直接賦值到num中
//相當於 />

property=* 把上個頁面表單傳遞來的鍵值對直接存入對應的bean中 實例: SayHello.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>

SayHello2.jsp
<%@ page language=java 
	contentType=text/html; charset=UTF-8
    pageEncoding=UTF-8%>
<%@ page import=com.qsuron.study.* %>
你好! <%= new String(man.getName().getBytes(iso8859_1),UTF-8) %> <%= new String(man.getSex().getBytes(iso8859_1),UTF-8) %>






轉載請注明出處:blog.csdn.net/qsuron 小樹博客 博主小樹 (qsuron)

 

 

 

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved