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的取值范围:
- page,javaBean只能在当前页面使用,当加载新页面时将会被销毁。
 - request,javaBean在用户发送请求时使用。
 - session,javaBean一直存在于会话中。
 - 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键) 

- 自动生成Getter和Setter方法:选中变量:
ALT+INSERT快捷键 or 右键变量 



\]
实战:利用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>
												
											JSP | JavaBean 的基本使用方法与 IDEA 配置的更多相关文章
- javaweb学习总结(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
		
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
 - JSP中使用的模式——JSP+JavaBean
		
模式二:JSP+Servlet+JavaBean 链接地址:http://wxmimperio.coding.io/?p=189 JSP中两种模式的总结 链接地址:http://wxmimperio. ...
 - 咸鱼入门到放弃11--Servlet+JSP+JavaBean开发模式
		
本篇搬运了大佬blog:https://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servle ...
 - JavaWeb学习 (二十一)————基于Servlet+JSP+JavaBean开发模式的用户登录注册
		
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
 - Struts与jsp+javabean+servlet区别
		
采用Struts框架技术和直接使用jsp+javabean技术开发各有什么优势?各自的缺点又是什么? 在Javaweb开发领域存在2种开发模式, 模式一,jsp+javabean 模式二,jsp+ja ...
 - 基于Servlet+JSP+JavaBean开发模式的用户登录注册
		
http://www.cnblogs.com/xdp-gacl/p/3902537.html 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBea ...
 - JSP+JavaBean+Servlet技术(MVC模型)
		
一,Servlet开发用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种 ...
 - javaweb(二十二)——基于Servlet+JSP+JavaBean开发模式的用户登录注册
		
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
 - <jsp:javabean>动作标签实例
		
<jsp:javabean>动作标签实例 之后补齐基础知识 scope属性 该属性指定了所创建Bean实例的存取范围,省略该属性时的值为page.<jsp:useBean>标识 ...
 - javaweb基础(22)_Servlet+JSP+JavaBean实战登陆
		
一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp ...
 
随机推荐
- 义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)
			
Bert-vits2更新了版本V210,修正了日/英的bert对齐问题,效果进一步优化:对底模使用的数据进行优化和加量,减少finetune失败以及电音的可能性:日语bert更换了模型,完善了多语言推 ...
 - 洛谷P2579 [ZJOI2005]沼泽鳄鱼(矩阵快速幂,周期)
			
例题:现在豆豆已经选好了两座石墩Start和End,他想从Start出发,经过K个单位时间后恰好站在石墩End上.假设石墩可以重复经过(包括Start和End),他想请你帮忙算算,这样的路线共有多少种 ...
 - JSX 代码是如何“摇身一变”成为 DOM 的?
			
JSX 是一种语法,并不是 React 中的内容,时下接入 JSX 语法的框架越来越多,但与之缘分最深的仍然是 React.本节来讲一下 React 是如何摇身一变成为 DOM 的. 我们平时在写Re ...
 - 【UniApp】-uni-app-全局数据和局部数据
			
前言 好,经过上个章节的介绍完毕之后,了解了一下 uni-app-全局样式和局部样式 那么了解完了全局样式和局部样式之后,这篇文章我再来给大家介绍一下 UniApp 中全局数据和局部数据 搭建演示环境 ...
 - [USACO2007NOVS] Best Cow Line S
			
题目描述 Farmer John 打算带领 \(N\)(\(1 \leq N \leq 2\,000\))头奶牛参加一年一度的"全美农场主大奖赛".在这场比赛中,每个参赛者必须让他 ...
 - [ABC235G] Gardens
			
Problem Statement Takahashi has $A$ apple seedlings, $B$ banana seedlings, and $C$ cherry seedlings. ...
 - 使用ztncui配置私有化zerotier服务器
			
众所周知,Zerotier-One是一个非常好的组建虚拟局域网的工具,可以以p2p的方式穿透NAT网络进行连接.但是在使用中也仍然存在着一些瑕疵,主要就是以下两点: 因为Zerotier官方提供的中心 ...
 - 【电影推荐系统】Spring Boot + Vue3 前后端分离项目
			
目录 0 前言 1 项目前端介绍 1.1 项目启动和编译 1.1.1 项目启动 1.1.2 项目编译 1.2 前端技术栈 1.3 功能模块前端界面展示 1.3.1 基础功能模块 1.3.2 用户模块 ...
 - vulnhub - lazySysAdmin - writeup
			
信息收集 可以看到目标开放了常见的22, 80, 139, 445, 3306这个6667的服务少见. root@kali tmp/lazySysAdmin » arp-scan -I eth1 -l ...
 - 【manim动画教程】--目录(完结)
			
manim是一个生成数学教学视频的动画引擎. 它用编程的方式创建精美的数学动画,让数学更加易懂. 本教程简单介绍了 manim 的基本使用方式,基于 v0.17.2 版本 manim 安装 manim ...