1. 程式人生 > >javabean組件

javabean組件

tty void family 姓名 會話 mod remove user cati

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 public
void 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 }
Student.java

若使用簡單的取變量使用變量是這樣的:

技術分享圖片
 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3
<%@ 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>
Javabean01.jsp

如果我們使用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>姓&nbsp;名:<%=student.getName() %></h2>
17     <h2>年&nbsp;齡:<%=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組件