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>
    
  • 相关阅读:
    深入浅出Vue基于“依赖收集”的响应式原理(转)
    10道初级渗透测试面试题,测测你离职场有多远?
    CTF必备技能丨Linux Pwn入门教程——格式化字符串漏洞
    CTF必备技能丨Linux Pwn入门教程——利用漏洞获取libc
    CTF必备技能丨Linux Pwn入门教程——调整栈帧的技巧
    CTF必备技能丨Linux Pwn入门教程——ROP技术(下)
    用实力燃爆暑期丨i春秋渗透测试工程师线下就业班开课了!
    CTF必备技能丨Linux Pwn入门教程——ROP技术(上)
    CTF必备技能丨Linux Pwn入门教程——ShellCode
    CTF必备技能丨Linux Pwn入门教程——栈溢出基础
  • 原文地址:https://www.cnblogs.com/RioTian/p/15510485.html
Copyright © 2011-2022 走看看