javabean組件
javaBean組件引入:
javaBean是使用java語言開發的一個可重用的組件,在Jsp開發中可以使用javaBean減少重復代碼,使整個JSP代碼的開發更簡潔。
我們首先創建一個類叫做Student 她有兩個屬性,age(年齡) name(姓名)
代碼如下:
1 package com.java1234.model; 2 public class Student { 3 private int age; 4 private String name; 5 public int getAge() { 6 return age; 7 } 8 publicStudent.javavoid setAge(int age) { 9 this.age = age; 10 } 11 public String getName() { 12 return name; 13 } 14 public void setName(String name) { 15 this.name = name; 16 } 17 }
若使用簡單的取變量使用變量是這樣的:
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3Javabean01.jsp<%@ page import="com.java1234.model.*" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 8 <title>javaBean</title> 9 </head> 10<body> 11 <% 12 Student student =new Student(); 13 student.setName("王二小"); 14 student.setAge(12); 15 %> 16 <h1>姓名:<%=student.getName() %></h1> 17 <h1>年齡:<%=student.getAge() %></h1> 18 </body> 19 </html>
如果我們使用jsp:useBean創建javabean(我們會發現大大簡化了代碼的數量)
不需要<%@page import="com.java1234.model.Student" >
jsp:useBean創建javabean:
<jsp;useBean id=”實例化對象的名稱”scope=“保存範圍”class=”類完整名稱”/>
Scope,一共有page(頁面),request(請求),session(會話)和application4個屬性範圍,默認是page;
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> 11 <% 12 student.setAge(18); 13 student.setName("王二小"); 14 %> 15 <h1>姓名:<%=student.getName() %></h1> 16 <h1>年齡<%=student.getAge() %></h1> 17 </body> 18 </html>javabean02.jsp
jsp:setProperty設置javabean屬性值:
<jsp:setProperty property=”屬性名稱”name=”實例化對象的名稱”value=”屬性值”param=”參數名稱”/>
Property=”*”自動匹配所有。
如果我們不使用setProperty(創建一個student.jsp form表單提交界面):
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <form action="javaBean03.jsp" method="post"> 11 <table> 12 <tr> 13 <td>姓名</td> 14 <td><input type="text" id="name" name="name"/></td> 15 </tr> 16 <tr> 17 <td>年齡:</td> 18 <td><input type="text" id="age" name="age"/></td> 19 </tr> 20 <tr> 21 <td colspan="2"><input type="submit" value="提交"></td> 22 </tr> 23 </table> 24 25 </form> 26 </body> 27 </html>student.jsp
此時javabean03.jsp文件request.getParameter()方法獲取name 和 age :
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <%@ page import="com.java1234.model.Student" %> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 8 <title>Setproperty</title> 9 </head> 10 <body> 11 <% 12 request.setCharacterEncoding("utf-8"); 13 String name=request.getParameter("name"); 14 String age=request.getParameter("age"); 15 Student student=new Student(); 16 17 student.setAge(Integer.parseInt(age)); 18 student.setName(name); 19 %> 20 <h1>姓名:<%=student.getName() %></h1> 21 <h1>年齡:<%=student.getAge() %></h1> 22 </body> 23 </html>javaBean03.jsp
采用jsp:setProperty進行設置:(此時的Property="*")
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javabean03-1</title> 8 </head> 9 <body> 10 <jsp:useBean id="student" scope="page" class="com.java1234.model.Student" /> 11 <jsp:setProperty property="*" name="student" /> 12 <h2>姓名:<%=student.getName() %></h2> 13 <h2>年齡:<%=student.getAge() %></h2> 14 </body> 15 </html>javaBean03-1
現在使用Property="name" Property="age"重寫為javaBean03-2.jsp。
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean03-1</title> 8 </head> 9 <body> 10 <% 11 request.setCharacterEncoding("utf-8"); 12 %> 13 <jsp:useBean id="student" scope="page" class="com.java1234.model.Student" /> 14 <jsp:setProperty property="name" name="student" param="username"/> 15 <jsp:setProperty property="age" name="student" value="100"/> 16 <h2>姓 名:<%=student.getName() %></h2> 17 <h2>年 齡:<%=student.getAge() %></h2> 18 </body> 19 </html>javaBean03-2.jsp
jsp:getProperty獲取javabean屬性值:
<jsp:getProperty property=”屬性名稱” name=”實例化對象的名稱”/>
Student.java裏面有age name屬性。
javaBean04.jsp代碼:
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <jsp:useBean id="student" scope="page" class="com.java1234.model.Student"/> 11 <% 12 student.setAge(18); 13 student.setName("王二小2"); 14 %> 15 <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> 16 <h1>年齡:<jsp:getProperty property="age" name="student" /></h1> 17 </body> 18 </html>javaBean04.jsp
Javabean的保存範圍:
Javabean的保存範圍有page,request,session,application.默認是page;
page:
在page中我們的上一個例子就是最好的說明,首先page是頁面,也就是說在同一個頁面存取。
request:
下面寫一下在request中的存取,客戶端內部跳轉<jsp:forward page="目標文件">
我們把目標文件設置為target01.jsp
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <% 11 request.setCharacterEncoding("utf-8"); 12 %> 13 <jsp:useBean id="student" scope="request" class="com.java1234.model.Student"/> 14 <jsp:setProperty property="age" name="student" value="12" /> 15 <jsp:setProperty property="name" name="student" value="張狗蛋" /> 16 <jsp:forward page="target01.jsp"/> 17 </body> 18 </html>javaBean04-1.jsp
target01.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>javaBean03-1</title> </head> <body> <jsp:useBean id="student" scope="request" class="com.java1234.model.Student" /> <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> <h1>年齡:<jsp:getProperty property="age" name="student"/></h1> </body> </html>target01.jsp
Session:(會話—只要瀏覽器不關閉就會一直存在)目標文件 target02.jsp
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <jsp:useBean id="student" scope="session" class="com.java1234.model.Student"/> 11 <jsp:setProperty property="age" name="student" value="12" /> 12 <jsp:setProperty property="name" name="student" value="張狗蛋" /> 13 <h1>session設置完畢</h1> 14 </body> 15 </html>javaBean04-2.jsp
目標文件:
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean03-1</title> 8 </head> 9 <body> 10 <h1>取到Session值</h1> 11 <jsp:useBean id="student" scope="session" class="com.java1234.model.Student" /> 12 <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> 13 <h1>年齡:<jsp:getProperty property="age" name="student"/></h1> 14 </body> 15 </html>target02.jsp
Application(很直觀的換個瀏覽器都可以取到值)
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <jsp:useBean id="student" scope="application" class="com.java1234.model.Student"/> 11 <jsp:setProperty property="age" name="student" value="12" /> 12 <jsp:setProperty property="name" name="student" value="張狗蛋" /> 13 <h1>application設置完畢</h1> 14 </body> 15 </html>javaBean04-3.jsp
目標文件:
traget03,jsp(換個瀏覽器一樣ok!)
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean03-1</title> 8 </head> 9 <body> 10 <h1>取到application值</h1> 11 <jsp:useBean id="student" scope="application" class="com.java1234.model.Student" /> 12 <h1>姓名:<jsp:getProperty property="name" name="student"/></h1> 13 <h1>年齡:<jsp:getProperty property="age" name="student"/></h1> 14 </body> 15 </html>target03.jsp
javabean刪除:
Page範圍:pageConext.removeAttribute(“javaBean Name”);
Request範圍:request.removeAttribute(“javaBean Name”);
Session範圍:session.removeAttribue(“javaBean Name”);
Application範圍:application.removeAttribue(“javaBean Name”);
舉個例子:
刪除session中的值
1 <%@ page language="java" contentType="text/html; charset=utf-8" 2 pageEncoding="utf-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 7 <title>javaBean</title> 8 </head> 9 <body> 10 <% 11 session.removeAttribute("student"); 12 %> 13 <h1>session刪除成功!</h1> 14 </body> 15 </html>javaBeanDelete.jsp
ok了!
javabean組件