JSP培训(5)——使用JavaBean完成业务逻辑

基于JSP办公自动化系统OA (全套源码 安装即用)本系统是一个完整的JSP应用项目,合适有初步JSP编程经验的朋友们提高和学习之用。系统含全套源码,合适朋友们在此基础上举一反三结合实际开发出优秀的JSP应用系统。学生毕业设计好教材!本系统是Web模式的办公自动化系统运行环境:Tomact+JDK编程模式:JSP+JavaBean+JavaServlet后台数据库:MS-Access系统主要功能简介: 阅读详情

目标:
l         掌握什么是JavaBean;
l         掌握如何编写JavaBean;
l         掌握如何在JSP中访问JavaBean;
l         理解JSP中对象的4个作用范围。
主要内容:
l         通过把上一讲中login_process.jsp中的验证过程进行封装形成JavaBean,然后在JSP页面中调用这个JavaBean,介绍JavaBean的编写和访问。
l         通过简单实例介绍JavaBean对象的4个作用范围。
1、 什么JavaBean
JavaBean是使用Java语言编写的组件。组件是组成一个大的系统的一部份,通常不同独立运行。组件能够完成特定的功能,并且这些功能主要是共享的。
JavaBean是一种特殊的Java类。特殊在:通常要提供无参数的构造方法;外界不需要知道它的具体实现,通常属性是私有的,需要提供公有的对属性进行操作的方法;应该有一些业务方法。
2、 例:对用户信息进行验证
package javabean;
public class User
{
   private String username;
   private String userpass;
   public String getUsername()
   {
      return username;
   }
   public void setUsername(String username)
   {
      this.username = username;
   }
   public String getUserpass()
   {
      return userpass;
   }
   public void setUserpass(String userpass)
   {
      this.userpass = userpass;
   }
   public boolean check()
   {
      if(username==null || userpass==null)
         return false;
      if(username.equals("zhangsan") && userpass.equals("lisi"))
      {
         return true;
      }else{
         return false;
      }
   }
}
3、 在JSP中如何调用JavaBean
首先,在Java中的调用情况:
import javabean;
…
   User user = new User(); // 定义对象,并且实例化
   user.setUsername(“zaaaa”); // 对成员变量进行初始化
   user.setUserpass(“sssss”);   // 对用户口令进行初始化
   boolean b = user.check();   // 调用业务方法进行验证
1) 创建对象
<jsp:useBean id=”” class=”” scope=””/>
作用:实例化JavaBean的对象,或者查找到JavaBean的对象。
id属性表示创建的对象的名字,class是JavaBean的完整类名,scope属性指出创建的变量的作用范围。
scope的作用范围有4个:page request session application
page表示当前页面,实际上是当前的JSP文件对应的Java类的对象;
request表示一次请求,从我们发送出去请求开始到系统对我们进行响应,这之间就是一次请求。如果一次请求只涉及一个JSP页面,page和request的效果是相同的。
例如:登录功能,显示第一个页面的时候,这时候page和request的作用范围是相同的。提交之后,如果登录成功,这时候涉及两个文件login_process.jsp和success.jsp,每个文件对应一个page,但是两个文件属于一个request。
session,表示会话。对于Web应用的每个客户端来说都对应一个对象,这个对象就是session,如果JavaBean对象的作用范围设置为session,相当于把JavaBean对象保存在了session对象中,在客户端的整个访问过程中都可以访问这个对象。
application,表示应用。如果把JavaBean对象的作用范围设置为application,这个应用的所有的用户在所有的界面都可以访问这个对象。
例:<jsp:useBean id=”user” class=”javabean.User” scope=”request”/>
测试(关于4个作用范围):
l         编写page.jsp文件如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
<c:set var="pageAttribute" value="pppp" scope="page"/>
<c:set var="requestAttribute" value="rrrrr" scope="request"/>
<c:set var="sessionAttribute" value="ssss" scope="session"/>
<c:set var="applicationAttribute" value="aaaa" scope="application"/>
 
<jsp:include page="success.jsp"/>
 
<br>page.jsp中输出信息:
${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
其中:<c:set>标签用于存储信息,var指出变量的名字,value指出变量的值(可以使用表达式),scope指出变量的存储范围。
${pageScope.pageAttribute}用于访问page范围内的pageAttribute属性,${requestScope.requestAttribute}用于访问request范围内的requestScope属性,依次类推。
 
l         编写request.jsp文件如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
<br>request.jsp中输出信息:
${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
<br>
<a href="session.jsp">访问session</a>
 
l         编写session.jsp文件如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
<br>session.jsp中输出信息:
${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
 
l         编写application.jsp文件如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 
<br>application.jsp中输出信息:
${pageScope.pageAttribute}
${requestScope.requestAttribute}
${sessionScope.sessionAttribute}
${applicationScope.applicationAttribute}
 
运行过程:
l         运行page.jsp,得到如下结果:
request.jsp中输出信息:rrrr ssss aaaa
page.jsp中输出信息:pppp rrrr ssss aaaa
分析:因为page.jsp和request.jsp属于同一次请求,所以共享request对象,session对象和application对象,但是不能显示page中存储的信息。
l         点击“访问session”进行session.jsp
session.jsp中输出信息:ssss aaaa
分析:与前面不属于同一次请求,所以不能访问request和page信息,只能访问session和application。
l         重新打开一个浏览器,访问application.jsp
application.jsp中输出信息:aaaa
分析:属于不同的客户端,所以只能共享application对象,只能看到application中的信息。
2) 对属性赋值
<jsp:setProperty name=”” property=”” value=””/>
name指出JavaBean对象的名字,property指出属性的名字,value要赋的值。
例:<jsp:setProperty name=”user” property=”username” value=”zhangsan”/>
如果value属性不指定,这时候会从请求对象查找名字为username的表单元素,如果有救赋值。相当于下面的代码:
String username = request.getParameter(“username”);
user.setUsername(username);
如果省略了value属性,同时把property属性设置为“*”,相当于:
String username = request.getParameter(“username”);
user.setUsername(username);
String userpass = request.getParameter(“usernpass”);
user.setUsernpass (userpass);
如果表单元素的名字与JavaBean属性名字不一致的时候,可以通过param属性指定使用哪个表单元素。
3) 嵌入Java代码调用方法
<%
   boolean b = user.check();
%>
4) 获取JavaBean属性
<jsp:getProperty name=”” property=””/>
4、 实例:修改login_process.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!--创建对象-->
<jsp:useBean id="user" class="javabean.User" scope="request"/>
<!--对对象进行初始化-->
<jsp:setProperty name="user" property="*"/>
<!-- 调用对象的方法 -->
<%
   boolean b = user.check();
   request.setAttribute("b",new Boolean(b));
   // 在request中保存信息,第一个参数是名字,第二个参数对象本身
%>
<!-- 根据结果进行判断 -->
<c:if test="${b}">
    <jsp:include page="success.jsp"/>
</c:if>
<c:if test="${!b}">
    <jsp:include page="failure.jsp"/>
</c:if>
<br>用户信息:
<jsp:getProperty name="user" property="username"/>
<jsp:getProperty name="user" property="userpass"/>
 
运行:编译之前编写好的Java文件User.java。然后把编译好的文件放在工程的WEB-INF目录的classes子目录中。
运行之后效果是相同的。
但是分析上面的代码,我们发现里面还是嵌入了Java代码,这是因为JSP并没有提供很好的标签对JavaBean的访问进行调用。如果想使用标签对业务方法调用,需要编写自定义标签,比较麻烦。下面介绍一个折中的方法。
5、 实例:重构login_process.jsp
在User.java中添加如下方法:
   public boolean getResult()
   {
      return check();
   }
虽然JSP没有提供访问业务方法的标签,但是提供了对属性进行访问的方式,所以该方法通过提供result属性来间接的调用check业务方法。
修改login_process.jsp文件如下:
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<jsp:useBean id="user" class="javabean.User" scope="request"/>
<jsp:setProperty name="user" property="*"/>
<c:if test="${user.result}">
    <jsp:include page="success.jsp"/>
</c:if>
<c:if test="${!user.result}">
    <jsp:include page="failure.jsp"/>
</c:if>
 参考教材:《Java Web程序设计基础教程》

JSP培训目录:

JSP培训(1)——概述
JSP培训(2)——运行原理、文档结构、简单输入输出
JSP培训(3)——客户端验证、常用输出方式、JSTL基本用法
JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:if
JSP培训(5)——使用JavaBean完成业务逻辑
JSP培训(6)——使用Servlet作为控制器实现MVC模式
JSP培训(7)——使用JDBC完成动态验证、采用MVC完成数据查询
JSP培训(8)——添加功能和分页显示
JSP培训(9)——使用MVC模式完成删除和修改功能
JSP培训(10)——使用JavaBean封装对数据库的访问、连接池的配置和使用
JSP培训(11)——Java Web中的安全控制
JSP培训(12)——Java Web应用国际化
JSP培训(13)——异常处理
JSP培训(14)——购物车实例(上)
JSP培训(15)——购物车实例(下)及小结

 

Java超市采购管理系统设计与实现:进销存数据库到JSP全流程 从B/S架构与JSP/JavaBean技术出发,梳理三层结构下浏览器、服务器与数据库的分工协作原理,强调业务逻辑与表示层分离的工程价值。在此基础上,聚焦进销存系统中最核心的数据库设计环节,结合SQL Server实践,展示从E-R图推导至六张核心业务表的完整过程,说明主外键约束、decimal金额类型选择等关键设计对数据一致性与报表精度的影响。此类以数据库为骨架、以JSP页面为交互入口的经典JavaWeb项目,是超市采购管理系统从需求分析到落地实现的典型路径,其模块划分与事务处理思路同样适用于毕业设计或中小 阅读详情

相关推荐

商品信息管理系统(Java实现+MySQL 数据库)

这是本人在做课程设计的时候写的用Java实现商品信息管理系统的代码,具体信息请看本人博客,博客地址https://blog.youkuaiyun.com/vegetable_haker/article/details/102556311,其中MySQL数据库需要根据本地配置做些修改 (本人菜鸟一枚,代码是几年前课设时写的,现在学的知识都交还给老师了,所以有什么问题的话,不要问我,我也不知道~ . ~,仅供学交流使用,有诸多不完善的地方,介意请谨慎下载)

JSPjsp:useBean标签

如果要使用JSP页面中的Action标签与JavaBeans组件进行交互,则必须首先声明一个bean。该<jsp:useBean>是声明和初始化的实际bean对象的一种方式。通过豆,我们的意思是JavaBean组件对象。<jsp:useBean>标记的语法 <jsp:useBean id = "beanName" class = "className" scope = "page | request | session | applicati...

allway2的博客 2727

网格自适应_Comsol案例解析17:自适应网格的使用

本期导读自适应网格细化有许多优势,比如可以不用对网格进行全局加密,增加计算精度,又会降低求解自由度。本期仍然以气泡上升案例为例,在两相流模块中使用自适应网格。【打开案例模型】【修改网格】适当让气泡边界加密,注意,曲率因子越小,曲线上的网格越密【添加自适应网格】使用默认的参数即可,这里的误差指示器用的是水平集phi。可以根据具体求解模型选择适当的自变量作为误差指示器。【口诀】默认的一般是最...

weixin_28726871的博客 5682

JavaBean实验

1、 创建学生成绩的表单页面,并创建对应的JavaBean,在JSP页面中使用标签来设置和读取属性 2、 在多个页面间测试JavaBean的作用范围,通过实验对scope为page,request,session,application加强理解

weixin_51066144的博客 2125

Python实战:从中国气象局天擎平台自动化获取与处理雷达基数据

本文详细介绍了如何利用Python脚本实现从中国气象局天擎平台自动化获取与处理雷达基数据。通过环境搭建、安全认证、核心代码编写及工程化优化,构建了一个包含自动查询、批量下载、错误重试和格式转换的完整数据管道,旨在帮助气象水文领域的研究者与数据分析师从繁琐的手动操作中解放出来,高效管理海量数据。

ipfs8storage的博客 930

在Mac上搭建本地AI工作流:Dify与DeepSeek的完美结合

本文介绍了在Mac上搭建本地AI工作流的方法,结合Dify平台和DeepSeek模型。Dify是一个开源的大语言模型应用开发平台,支持可视化AI应用开发。部署步骤包括:1)安装Homebrew和Docker;2)克隆Dify代码库;3)配置环境变量并启动服务。同时,使用Ollama工具本地部署DeepSeek模型,将其集成到Dify中创建聊天助手。通过配置模型接口和新建应用,用户可以在本地环境中实现AI对话功能。这种方案既保证了数据隐私,又提供了灵活的AI应用开发能力。

Linda的自动化测试之旅 1536

了解JavaBean以及它在jsp中的用法

我是一个初学者,还有很多不懂的地方,希望大神们给点意见 一.什么叫JavaBean:         它就相当于Java中的实体类(entity),也叫domain,但是为了编辑工具识别,需要满足至少三个条件       1.必须有无参方法        2.属性使用public的set,get方法访问,也就是说设置成private,同时set,get方法与属性名的大小也需要对应。

Blessed_的博客 579

用Python+PyTorch实现DQN无人机避障:从环境搭建到实战训练(附完整代码)

本文详细介绍了如何使用Python和PyTorch框架,基于深度强化学习中的DQN算法,实现一个无人机自主避障系统。内容涵盖从自定义环境搭建、DQN智能体核心算法实现,到完整的训练流程与超参数调优,并提供了可视化演示与进阶优化方向,为开发者提供了从理论到实践的完整指南。

kubernetes8ctl的博客 641

实验三JavaBean技术

实验三JavaBean技术 一、实验目的: 1、掌握JavaBean创建和使用方法; 2、掌握 Javabean 的编写规则 3、体验 JSP+JavaBean 编程的好处 二、实验原理: JavaBean 组件是一些可移植、可重用,并可以组装到应用程序中的 Java 类。 将JavaBean与 JSP 语言元素一起使用,可以很好地实现后台业务逻辑和前台表示逻辑的分离,使得JSP页面更加可读、易维...

云卷云舒 2751

国密https握手协议抓包及流程详解

使用的密码套件清单-Cipher Suite,这里服务器端选择了ECC_SM4_CBC_SM3密码套件,也就是SM2公钥算法、SM4-CBC分组密码算法和SM3杂凑算法。具体来说,这里SM2算法密钥交换算法,SM4是加密算法(SM4-CBC)、SM3是校验算法(国标要求为HMAC-SM3)。服务器的加密证书:加密证书中在同样在扩展字段中KeyUsage标识出KeyEncipherment为true和dataEncipherment为true,即数字证书中包含的公钥可用来做密钥加密密钥和数据密钥。

ryanzzzzz的博客 5850

人工智能在慢病管理中的具体应用全集:从技术落地到场景创新

这一成果的取得,得益于 AI 对居民血压数据的实时监测和分析,以及及时的干预措施。据统计,医疗支出下降了 18%,这主要是由于 AI 慢病管理系统实现了对慢病患者的早筛早诊早治,减少了并发症的发生,降低了医疗资源的浪费,从而减轻了患者和社会的医疗负担。医院信息系统(HIS)、电子病历(EMR)、区域卫生平台、可穿戴设备(如三诺血糖仪、华为手环)、第三方健康APP以及体检中心的数据往往采用不同的数据标准和格式(如HL7、FHIR、JSON、CSV等),且存储在相互隔离的系统中,形成典型的数据孤岛。

AllenLV的博客 2095

使用jsp+servlet+javabean+json完成项目整合-冯三-专题视频课程

使用jsp+servlet+javabean完成web项目,很经典的项目案例,使用json+jquery+ajax对前端显示进行优化,详细的实现细节和代码编写过程。。。

我思故我在 533

Python爬虫实战:扒取专利数据库核心信息,我用这招搞定反爬+数据结构化(附完整可运行代码)

这套爬虫方案从「实际需求」出发,解决了专利数据库抓取的核心痛点:反爬突破、数据结构化、标题创作。核心价值不在于代码多复杂,而在于「实用」——我用这套代码半天就抓取了800+条Python爬虫相关专利,比手动效率提升了几十倍。最后想说:爬虫技术的核心是「解决问题」,而不是炫技。专利数据能帮我们快速了解行业技术趋势,尤其是程序员,从专利中扒出的核心逻辑,远比零散的博客文章更系统。希望这篇实战分享能帮到有需要的小伙伴,也欢迎在评论区交流专利爬虫的更多技巧!

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 2131

JSP培训(6)——使用Servlet作为控制器实现MVC模式

 目标:l         初步理解MVC模式;l         掌握Servlet的编写;l         使用MVC模式完成登录功能。主要内容:l         分析JSP+JavaBean模式存在的问题,并介绍JSP+JavaBean+Servlet模式,以及和MVC模式的关系;l         通过简单实例介绍Servlet的编写、配置和运行;l  

李绪成的一亩三分地 4229

Android功耗系列专题理论之二十一:Power Monitor测功耗详细说明和注意事项

本文详细介绍了PowerMonitor手机功耗测试仪的功能与使用方法。该设备通过硬件连接替代手机电池,实时监测电流、电压等参数,适用于研发测试、软件优化等场景。文章包含设备接线说明(电源、USB、手机供电等接口)、驱动安装步骤及常见问题排查,并详细讲解了功耗测量操作流程,包括电压设置、开机步骤、数据采集与导出方法。特别强调了测量注意事项,如固定屏幕亮度、关闭后台应用、确保稳定连接等,以确保测试数据准确性。最后提供了简易测量步骤和详细测量流程指导。

602

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

详细介绍JSP技术的两种架构模型

运用JSP/Servlet实现的web动态交互,主要采用JSP和JavaBean模型还有JSP和JavaBean+Servlet模型。本文分别介绍这两种模型,并比较它们的优缺点。 一、JSP和JavaBean模型   其工作原理是:当浏览器发出请求时,JSP接收请求并访问JavaBean.若需要访问数据库或后台服务器,则通过JavaBean连接数据库或后台服务器,数据库培训执行相应的处理。Ja

u013776081的专栏 2403

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

培训目录

李绪成的一亩三分地 1595

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

上一篇: JSP培训(4)——实例:登录功能、jsp:forward标签、jsp:include标签、include指令、EL、c:i
下一篇: JSP培训(6)——使用Servlet作为控制器实现MVC模式
老李-大连
博客等级 码龄20年 3206粉丝 308原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值