zoukankan      html  css  js  c++  java
  • 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=" 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=" 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>
    
  • 相关阅读:
    Aurora 数据库支持多达五个跨区域只读副本
    Amazon RDS 的 Oracle 只读副本
    Amazon EC2 密钥对
    DynamoDB 读取请求单位和写入请求单位
    使用 EBS 优化的实例或 10 Gb 网络实例
    启动 LAMP 堆栈 Web 应用程序
    AWS 中的错误重试和指数退避 Error Retries and Exponential Backoff in AWS
    使用 Amazon S3 阻止公有访问
    路由表 Router Table
    使用MySQLAdmin工具查看QPS
  • 原文地址:https://www.cnblogs.com/RioTian/p/15510485.html
Copyright © 2011-2022 走看看