JSP | JavaBean 的基本使用方法與 IDEA 配置


上一篇重新編寫了 IDEA 2021.2 新建JavaWeb項目及Tomcat部署

接下來的本篇文章才是核心,JavaBean的基本使用方法與 IDEA 配置

JavaBean概述

  • JavaBean是采用Java語言機制實現特定功能的組件
  • JavaBean實際上是一個Java類,Jsp可以通過訪問Javabean中的變量以及調用其中的方法,減小了Jsp中的代碼冗余度
  • JSP,Serlet,JavaBean之間的關系

  • JavaBean是一種特殊的Java類,遵循JavaBean API規范,實現java.io.Serializable接口,是一個公共類,類中必須包含無參構造函數,提供對屬性訪問的set和get函數
  • JavaBean需要放到指定的目錄下,以便服務器能找到執行,一般為Web Root/WEB-INF/classes

JSP 中引用 JavaBean

jsp:useBean:裝載一個將在JSP頁面中使用的javaBean

  • 使用
<jsp:useBean id="name" class="package.class" scope="scope"/>
<jsp:useBean id="stu" class="YoungHD.StudentBean" scope="page">
...
</jsp:useBean>
  • 其中id用於創建javaBean的引用名;class用於指定javaBean的類;scope用於指定javaBean的范圍,默認值為page。
  • scope的取值范圍:
    1. page,javaBean只能在當前頁面使用,當加載新頁面時將會被銷毀。
    2. request,javaBean在用戶發送請求時使用。
    3. session,javaBean一直存在於會話中。
    4. application,javaBean在整個應用程序中均可使用。

jsp:setProperty設定useBean中指定的javaBean屬性值

  • 基本用法
<jsp:setProperty property="PropertyName" name="BeanName" value="Value" param="Parameter"/>
  • 其中name指定useBean中使用的javaBean的id;property用於指定要為之設置值得屬性名稱。value指定要為屬性設置的值。param指定用於輸入數據的表單元素的值。
  • 注意:value屬性和param屬性不能同時使用。
  • 舉例
<jsp:setProperty property="username" name="YoungHD" value="younghd"/>

<jsp:setProperty name="stu" property="username" param="username"></jsp:setProperty>

jsp:getProperty獲取javaBean中指定的屬性值

  • 基本語法
<jsp:getProperty name="BeanName" property="PropertyName" />
  • 其中name指定useBean中使用的javaBean的id;property指定要獲取javaBean的屬性名
  • 舉例:兩種方法效果相同
姓名:<%=stu.getUsername()%><hr>
姓名:<jsp:getProperty property="username" name="stu"/><hr>

IDEA 中JavaBean的自動生成與配置

  • 創建JavaBean:在項目中的src目錄下面創建一個包,並在包下創建一個Java類(注意:一定要創建包,不能直接創建java類,否則無法導入JavaBean
  • IDEA 項目配置,創建classes目錄並設置導出路徑,導出路徑為Web Root/WEB-INF/classes(在項目上按住F4鍵)

IDEA 項目配置

  • 自動生成Getter和Setter方法:選中變量:ALT+INSERT快捷鍵 or 右鍵變量

自動生成Getter和Setter方法


\[QAQ \]


實戰:利用JavaBean實現表單的提交

  • StudenBean.java 部分
package RioTian;

public class StudenBean implements java.io.Serializable {

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSchool_id() {
        return school_id;
    }

    public void setSchool_id(String school_id) {
        this.school_id = school_id;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getCollege() {
        return college;
    }

    public void setCollege(String college) {
        this.college = college;
    }

    public String getMy_introduce() {
        return my_introduce;
    }

    public void setMy_introduce(String my_introduce) {
        this.my_introduce = my_introduce;
    }

    public String[] getLoves() {
        return loves;
    }

    public void setLoves(String[] loves) {
        this.loves = loves;
    }

    private String username,password,school_id,address,sex,college,my_introduce;
    private String []loves;
}
  • index.HTML 部分
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>同學信息</title>
  <style>
    body{background-color: beige}
  </style>
  <link rel="stylesheet" type="text/css" href="../css/f5.css">
  <script src="../js/f5.js"></script>
</head>
<body>
<div align="center">
  <p id="t_head">個人信息表</p><br>
</div>
<div align="center">
  <form action="../index.jsp" method="post" name="form_1" onsubmit="return user_Check()" >
    姓名:<input type="text" name="username"><hr>
    密碼:<input type="password" name="password" onchange="return pwd_check1()"><hr>
    確認:<input type="password" name="re_password" onchange="return pwd_check2()"><hr>
    學號:<input type="text" name="school_id"><hr>
    宿舍:<input type="text" name="address"><hr>
    性別:
    <input name="sex" type="radio" checked="checked" value="boy"/>男
    <input name="sex" type="radio" value="girl"/>女<hr>
    學院:
    <select name="college" style="width: 15%">
      <option  value ="computer">計算機科學與技術</option>
      <option  value ="math">數科院</option>
      <option  value="business">商學院</option>
      <option  value="art">文學院</option>
      <option  value="chemistry">化科院</option>
    </select><hr>
    愛好:
    <input type="checkbox" name="loves" value="10">讀書
    <input type="checkbox" name="loves" value="20">游泳
    <input type="checkbox" name="loves" value="30">音樂
    <input type="checkbox" name="loves" value="40">寫作<hr>
    個人簡介:<textarea  name="my_introduce" rows="5"  style="width: 20%"></textarea><hr>
    <input type="submit" name="Submit1" value="注冊">
    <input type="reset" name="Submit2" value="重置">
  </form>
</div>
</body>
</html>
  • index.jsp 部分
<%--
  Created by IntelliJ IDEA.
  User: RioTian
  Date: 2021/11/4
  Time: 20:38
--%>
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import="RioTian.StudenBean" %>
<!DOCTYPE html>
<html>
<head>
    <title>JavaBean 處理頁面</title>
    <style>
        body{
            background-color: beige;
        }
    </style>
</head>
<body>
<h1 style="align-content: center"> JavaBean 的使用 </h1>
<%request.setCharacterEncoding("UTF-8");//客戶端網頁我們控制為UTF-8%>
<jsp:useBean id="stu" class="RioTian.StudenBean">
    <jsp:setProperty name="stu" property="username" param="username"></jsp:setProperty>
    <jsp:setProperty name="stu" property="password" param="password"></jsp:setProperty>
    <jsp:setProperty name="stu" property="school_id" param="school_id"></jsp:setProperty>
    <jsp:setProperty name="stu" property="address" param="address"></jsp:setProperty>
    <jsp:setProperty name="stu" property="sex" param="sex"></jsp:setProperty>
    <jsp:setProperty name="stu" property="college" param="college"></jsp:setProperty>
    <jsp:setProperty name="stu" property="loves" param="loves"></jsp:setProperty>
    <jsp:setProperty name="stu" property="my_introduce" param="my_introduce"></jsp:setProperty>
</jsp:useBean>
Name: <%=stu.getUsername()%> <hr>
Name: <jsp:getProperty name="stu" property="username"/><hr>
Password: <jsp:getProperty name="stu" property="school_id"/><hr>
Stu_Id: <jsp:getProperty name="stu" property="school_id"/><hr>
Dormitory: <jsp:getProperty name="stu" property="address"/><hr>
Sex: <jsp:getProperty name="stu" property="sex"/><hr>
College: <jsp:getProperty name="stu" property="college"/><hr>
Loves: <%
     String []temp=stu.getLoves();
    for (int i = 0;i < stu.getLoves().length;i++){
        out.print(temp[i]+"--");
    }
%><hr>
Personal-Profile: <jsp:getProperty name="stu" property="my_introduce"/> <hr>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM