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 ...
随机推荐
- 普冉PY32系列(十) 基于PY32F002A的6+1通道遥控小车I - 综述篇
目录 普冉PY32系列(一) PY32F0系列32位Cortex M0+ MCU简介 普冉PY32系列(二) Ubuntu GCC Toolchain和VSCode开发环境 普冉PY32系列(三) P ...
- 从ClickHouse通往MySQL的几条道路
一.应用背景简介 ClickHouse 是 Yandex(俄罗斯最大的搜索引擎)开源的一个用于实时数据分析的基于列存储的数据库,其处理数据的速度比传统方法快 100-1000 倍.ClickHouse ...
- 我理解的null和“ “,希望大家给予更正。
我认为null是零的意思,就是没有任何的东西,比如说文件的读取中,没有任何的东西就是null,刚刚用new String创建的String里面有一个引用,所以它不为null,如果用String h=& ...
- Java API 操作Docker浅谈
背景: 使用com.github.docker-java库可以很方便地在Java中操作Docker.下面是一个详细的教程,包括创建镜像.创建容器.启动容器.停止容器和删除容器的步骤以及每一步的说明. ...
- 文心一言 VS 讯飞星火 VS chatgpt (156)-- 算法导论12.3 3题
三.用go语言,对于给定的 n 个数的集合,可以通过先构造包含这些数据的一棵二叉搜索树(反复使用TREE-INSERT 逐个插入这些数),然后按中序遍历输出这些数的方法,来对它们排序.这个排序算法的最 ...
- 【scikit-learn基础】--『监督学习』之 随机森林回归
随机森林回归(Random Forest Regression)是一种在机器学习领域广泛应用的算法,由美国科学家 Leo Breiman 在2001年提出.它是一种集成学习方法,通过整合多个决策树的预 ...
- CentOS系统中yum的基本用法
最小化安装系统时,yum可能会因为网卡配置问题,随机启动配置,导致无法使用, 在shell里面输入:yum --help ,结果显示 yum 已经正常安装了!!到底是哪里出了问题呢?经过网友的提示,我 ...
- Rabin-Karp 字符串查找算法
和一般的比较字符串的方式不同,Rabin-Karp 查找算法通过对子字符串进行 hash,如果在原有字符串中找到了 hash 值相同的字符串,那么继续比较是否是需要查找的字串,一般来讲,如果 hash ...
- 一篇文章彻底搞懂TiDB集群各种容量计算方式
背景 TiDB 集群的监控面板里面有两个非常重要.且非常常用的指标,相信用了 TiDB 的都见过: Storage capacity:集群的总容量 Current storage size:集群当前已 ...
- Vue接入谷歌广告(Google Adsense)
1.注册账户 首先你要拥有一个google账号,点击注册谷歌账号,点击个人账号根据提示一步一步来即可注册成功.(当然你需要魔法才可以正常访问谷歌服务) 2.补充账户信息,申请广告授权 点击进入Goog ...