jsp中javabean的使用
JSP Javabean辅助类

JSP Javabean辅助类
使用JavaBean可以处理一种特定的功能,如显示当前的时间,链接数据库等。
如果一个JavaBean编写的代码太多,就会产生不容易调试,时间长了不容易读取的情况。
这时把JavaBean的代码分成不同的类,一个类完成一个指定的功能,这样结构层次清晰,分工就明确了。
在一个JavaBean中如果存在多个类,除了主类之外的其它类,我们称它们为JavaBean的辅助类。
如果读者比较熟悉Java语言的编写,对于这种形式就比较熟悉了。
现在通过一个案例演示JavaBean的辅助类的使用,该案例主要实现显示指定目录下的文件,在前面章节中使用的是JSP页面实现的这一个功能,在这里借助于
将该文件保存在指定的位置,文件名为ListFile.java。
在JavaBean文件中,存在两个类,一个FileName类实现FilenameFilter接口,起到一个过滤文件名的作用,一个ListFile类实现是一个符合JavaBean规范的类,该类主要实现设置和获得路径
的名称,并显示指定目录下的文件。
将该文件保存,文件名为BeanExample10.jsp。
打开IE浏览器,在地址栏中输入http://localhost:8080/JSPExample/BeanExample10.jsp,单击转到,会显示如图4-11所示的窗口。
图4-11 显示指定目录下文件
在JSP页面源文件中,创建一个JavaBean的实例化对象file,通过file对象利用JSP的动作标签设置和获取JavaBean的变量的值。
最后使用listFile方法输出指定目录下的所有文件,如上图所示。
JSP 创建JavaBean文件

private String check;
public JavaBean() {
if (name != "" && password != "") {
if (name == "admin" && password == "admin") {
setCheck("登录成功!");
ห้องสมุดไป่ตู้this.check = check;
}
public String getCheck() {
return check;
}
}
JSP
说简单点,JavaBean其实只是个普通的Class类,只不过额外满足一些约定——一般所有属性都是private私有的,并且所有属性都有公有的(public)get和set方法。满足以上两点的类或者实例,基本上可以认为是一个JavaBean文件。
首先,在MyEclipse中,可以右击项目目录中的src目录选项,并执行【新建】|【类】命令,创建类文件,如图5-3所示。
} else {
setCheck("用户名和密码不正确!");
}
} else {
setCheck("用户名和密码不为空!");
}
}
public void setName(String name) {
= name;
}
public void setPassword(String password) {
图5-3创建类
然后,在弹出的【新建Java类】对话框中,输入【包】为com和【名称】为JavaBean,并单击【完成】按钮,如图5-4所示。
javaweb中usebean用法

在Java Web开发中,`useBean`是JSP页面内置对象`pageContext`的一个方法,用于创建或获取一个JavaBean对象。
JavaBean是一个遵循特定命名规则的Java类,主要用于封装多个属性为一个对象,并通过JSP页面进行显示和操作。
`useBean`方法的基本语法如下:```java<jsp:useBean id="beanId" class="com.example.BeanClass" scope="page|request|session|application"/>```其中:* `id`:指定JavaBean的唯一标识符。
* `class`:指定JavaBean的全限定类名(包括包名)。
* `scope`:指定JavaBean的作用范围,可选值为`page`、`request`、`session`、`application`,默认为`page`。
使用`useBean`方法创建或获取JavaBean对象时,会根据指定的作用范围和JavaBean的名称进行查找。
如果找到了匹配的JavaBean 对象,则返回该对象;如果没有找到,则根据指定的类名创建一个新的JavaBean对象。
下面是一个简单的示例,演示了如何在JSP页面中使用`useBean`方法:```jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>JavaBean Example</title></head><body><%// 创建或获取名为"person"的JavaBean对象Person person = (Person) pageContext.getAttribute("person");if (person == null) {person = new Person();person.setName("John");person.setAge(30);pageContext.setAttribute("person", person);}%><h1>Person Information</h1><p>Name: <%= person.getName() %></p><p>Age: <%= person.getAge() %></p></body></html>```在上面的示例中,首先使用`useBean`方法创建或获取名为"person"的JavaBean对象。
JavaBean简单介绍及其应用

JavaBean简单介绍及其应⽤Bean的中⽂含义是“⾖⼦”,顾名思义JavaBean是⼀段Java⼩程序。
JavaBean实际上是指⼀种特殊的Java类。
它通经常使⽤来实现⼀些⽐較经常使⽤的简单功能。
并能够⾮常easy的被重⽤或者是插⼊其它应⽤程序中去。
全部遵循⼀定编程原则的Java类都能够被称作JavaBean。
⼀. Java Bean技术概述Java Bean是基于Java的组件模型,由属性、⽅法和事件3部分组成。
在该模型中,JavaBean能够被改动或与其它组件结合以⽣成新组件或完整的程序。
它是⼀种Java类,通过封装成为具有某种功能或者处理某个业务的对象。
因此。
也能够通过嵌在JSP页⾯内的Java代码訪问Bean及其属性。
Bean的含义是可反复使⽤的Java组件。
所谓组件就是⼀个由能够⾃⾏进⾏内部管理的⼀个或⼏个类所组成、外界不了解其内部信息和执⾏⽅式的群体。
使⽤它的对象仅仅能通过接⼝来操作。
⼆. Java Bean编写规范Java Bean实际上是依据JavaBean技术标准所指定Bean的命名和设计规范编写的Java类。
这些类遵循⼀个接⼝格式。
以便于使函数命名、底层⾏为以及继承或实现的⾏为,其最⼤的长处在于可以实现代码的可重⽤性。
Bean并不须要继承特别的基类(BaseClass)或实现特定的接⼝(Interface)。
Bean的编写规范使Bean的容器(Container)可以分析⼀个Java类⽂件。
并将其⽅法(Methods)翻译成属性(Properties),即把Java类作为⼀个Bean类使⽤。
Bean的编写规范包含Bean类的构造⽅法、定义属性和訪问⽅法编写规则。
2.1. Bean组件的⼯作机制在JavaBeansVersion1.01 A规范中定义了该组件的5种重要机制:(1)内省(Introspection):组建能够发表其⽀持的操作和属性。
同⼀时候也⽀持在其它组件中发现反复利⽤的对象库,如⽤户权限控制和电⼦邮件⾃⼰主动回复等。
使用JavaBean连接数据库

JSP+JavaBean1、JavaBean类1、显示学生信息内容JavaBeanpackage com.DataBase;import java.sql.*;public class MyDbBean{private Statement stmt = null;ResultSet rs = null;private Connection conn = null;private String dsn;//构造函数public MyDbBean() { }//根据dsn参数,加载驱动程序,建立连接public void getConn(String dbname, String uid, String pwd) throws Exceptiontry{dsn = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=" +dbname;Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();conn = DriverManager.getConnection(dsn, uid, pwd);}catch (Exception ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}//执行查询类的SQL语句,有返回集public ResultSet executeQuery1(String sql){rs = null;try{stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONL Y);rs = stmt.executeQuery(sql);}catch(SQLException ex){System.err.println("aq.executeQuery:"+ex.getMessage());}return rs;}//执行更新类的SQL语句,无返回集public void executeUpdate2(String sql){stmt = null;rs=null;try{stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONL Y);stmt.executeQuery(sql);stmt.close();conn.close();}catch(SQLException ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}//关闭对象public void closeStmt()try{ stmt.close(); }catch(SQLException ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}public void closeConn(){try{ conn.close(); }catch(SQLException ex){System.err.println("aq.executeQuery: " + ex.getMessage());}}}“list.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="testbean" scope="session" class="com.DataBase.MyDbBean" /><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>学籍管理系统</title></head><%! String url,sql; %><%! int i;%><body bgcolor="#ffffff"><div align="center"><font color="#000000" size="5">学籍管理系统</font> </div> <table width="75%" border="1" cellspacing="1" cellpadding="1" align="center"><tr><td width=16% align=center>学号</td><td width=16% align=center>姓名</td><td width=8% align=center>性别</td><td width=8% align=center>年龄</td><td width=16% align=center>籍贯</td><td width=12% align=center>更改</td><td width=12% align=center>删除</td></tr><%//调用getConn方法与数据库建立连接testbean.getConn("Data_Stu", "sa","");sql="select * from stuInfo";ResultSet rs=testbean.executeQuery1(sql);//查询数据库while(rs.next()){%><tr><td width=16% align=center><%=rs.getString(1)%></td><td width=16% align=center><%=rs.getString(2)%></td><td width=8% align=center><%=rs.getString(3)%></td><td width=8% align=center><%=rs.getInt(4)%></td><td width=16% align=center><%=rs.getString(5)%></td><td width=12% align=center><%=rs.getString(6)%></td><td width=12% align=center><a href="change.jsp?xuehao=<%=rs.getString(1)%>">修改</a></td> <td width=12% align=center><a href="del.jsp?xuehao=<%=rs.getString(1)%>">删除</a></td></tr><%}rs.close();testbean.closeStmt();testbean.closeConn();%></table><div align="center"><a href="insert.jsp">添加新记录</a> </div></body></html>2、添加记录“insert.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*;" errorPage=""%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>添加记录</title></head><body bgcolor="#FFFFFF" text="#000000"><div align="center"><font color="#000000" size="5">添加新记录</font></div><form name="form1" method="post" action="query.jsp"><table width="35%" border="1" cellspacing="1" cellpadding="1" align="center"> <tr><td width="46%" align="center">学号</td><td width="54%"> <input type="text" name="xuehao" size="7"></td></tr><tr><td width="46%" align="center">姓名</td><td width="54%"> <input type="text" name="name" size="8"></td></tr><tr><td width="46%" align="center">性别</td><td width="54%"> <select name="sex" size="1"><option value="男" selected> 男</option><option value="女">女</option></select></td></tr><tr><td width="46%" align="center">年龄</td><td width="54%"> <input type="text" name="age" size="2"></td></tr><tr><td width="46%" align="center">籍贯</td><td width="54%"> <input type="text" name="jiguan" size="8"></td></tr><tr><td width="46%" align="center">院系</td><td width="54%"> <input type="text" name="department" size="8"></tr><tr align="center"><td colspan="2" align="center"><input type="submit" name="Submit" value="提交"> <input type="reset" name="reset" value="清空"></td></tr></table></form></body></html>“query.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="query" scope="session" class="com.DataBase.MyDbBean"/> <html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>插入数据</title></head><body><%! String xuehao,name,sex,age,jiguan,department,url,sql; %><%! int i;%><%xuehao=request.getParameter("xuehao").trim();name=request.getParameter("name").trim();name=new String(name.getBytes("ISO-8859-1"),"UTF-8");//编码转换sex=request.getParameter("sex").trim();sex=new String(sex.getBytes("ISO-8859-1"),"UTF-8");age=request.getParameter("age").trim();i=Integer.parseInt(age);jiguan=request.getParameter("jiguan").trim();jiguan=new String(jiguan.getBytes("ISO-8859-1"),"UTF-8");department=request.getParameter("department").trim();department=new String(department.getBytes("ISO-8859-1"),"UTF-8");if(xuehao.length()!=7){//检查学号的位数response.sendRedirect("err.jsp");}response.sendRedirect("err.jsp");}//调用getConn()方法与数据库建立连接query.getConn("Data_Stu","sa","");sql="select * from stuInfo where 学号='"+xuehao+"'";ResultSet rs=query.executeQuery1(sql);if(rs.getRow()>0){ response.sendRedirect("err.jsp"); }sql="insert into stuInfo(学号,姓名,性别,年龄,籍贯,院系)";sql=sql+"values('"+xuehao+"','"+name+"','"+sex+"','"+i+"','"+jiguan+"','"+department+"')";query.executeUpdate2(sql);out.println("<font size=3 color=blue>正在处理信息,请稍后......</font><meta http-equiv='refresh' content='2;url=list.jsp'>");rs.close();query.closeStmt();query.closeConn();%></body></html>3、更改记录“change.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@ page import="java.sql.*,java.util.*;" errorPage=""%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="modify" scope="session" class="com.DataBase.MyDbBean"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>修改记录</title></head><body bgcolor="#FFFFFF" text="#000000"><div align="center"><font color="#000000" size="5">修改记录</font> </div><%! String xuehao,url,sql,sex; %><%xuehao=request.getParameter("xuehao").trim();//调用getConn()方法与数据库建立连接modify.getConn("Data_Stu","sa","");sql="select * from stuInfo where 学号='"+xuehao+"'";ResultSet rs=modify.executeQuery1(sql);while(rs.next()){%><form name="form1" method="post" action="change_query.jsp?xuehao=<%=xuehao%>"><table width="35%" border="1" cellspacing="1" cellpadding="1" align="center"><tr><td width="46%" align="center">学号</td><td width="54%"> <%=rs.getString(1)%></td></tr><tr><td width="46%" align="center">姓名</td><td width="54%"> <input type="text" name="name" size="8" value=<%=rs.getString(2)%>></td></tr><tr><td width="46%" align="center">性别</td><td width="54%"> <%sex=rs.getString(3).trim();if(sex.equals("男")){%><option value="男" selected>男</option><option value="女">女</option></select><% }else{%><select name="sex" size="1"><option value="男" >男</option><option value="女"selected>女</option></select><% } %></td></tr><tr><td width="46%" align="center">年龄</td><td width="54%"> <input type="text" name="age" size="2" value=<%=rs.getInt(4)%>></td></tr><tr><td width="46%" align="center">籍贯</td><td width="54%"> <input type="text" name="jiguan" size="8" value=<%=rs.getString(5)%>></td></tr><tr><td width="46%" align="center">院系</td><td width="54%"> <input type="text" name="department" size="8" value=<%=rs.getString(6)%>></td></tr><tr align="center"><td colspan="2" align="center"><input type="submit" name="Submit" value="提交"> <input type="reset" name="reset" value="清空"></td></tr></table></form><%}rs.close();modify.closeStmt();modify.closeConn();%></body></html>“change_query.jsp”<%--Document : change_queryCreated on : 2010-5-8, 17:32:29Author : Administrator--%><%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="modify" scope="session" class="com.DataBase.MyDbBean"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>修改记录</title></head><body><%! String xuehao,name,sex,age,jiguan,department,url,sql; %><%! int i;%><%xuehao=request.getParameter("xuehao").trim();out.print(xuehao);name=request.getParameter("name").trim();name=new String(name.getBytes("ISO-8859-1"),"UTF-8");sex=request.getParameter("sex").trim();sex=new String(sex.getBytes("ISO-8859-1"),"UTF-8");age=request.getParameter("age").trim();i=Integer.parseInt(age);jiguan=request.getParameter("jiguan").trim();jiguan=new String(jiguan.getBytes("ISO-8859-1"),"UTF-8");department=request.getParameter("department").trim();department=new String(department.getBytes("ISO-8859-1"),"UTF-8");if(name.equals("")){response.sendRedirect("err1.jsp");}try{//调用getConn()方法与数据库建立连接modify.getConn("Data_Stu","sa","");sql="update stuInfo set 姓名= '"+name+"',性别= '"+sex+"',年龄="+i+",籍贯= '"+jiguan+"',院系=modify.executeUpdate2(sql);out.println("<font size=3 color=blue>正在修改记录,请稍后......</font><meta http-equiv='refresh' content='2;url=list.jsp'>");modify.closeStmt();modify.closeConn();}catch(Exception e){response.sendRedirect("err.jsp");}%></body></html>4、删除记录“del.jsp”<%@page contentType="text/html" pageEncoding="UTF-8"%><%@page import="java.sql.*,java.util.*" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><jsp:useBean id="del" scope="session" class="com.DataBase.MyDbBean"/><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>删除记录</title></head><body><%! String xuehao,url,sql; %><%xuehao=request.getParameter("xuehao").trim();try{//调用getConn()方法与数据库建立连接del.getConn("Data_Stu","sa","");sql="delete from stuInfo where 学号='"+xuehao+"'";del.executeUpdate2(sql);out.println("<font size=3 color=blue>正在删除数据,请稍后......</font>" +"<meta http-equiv='refresh' content='2;url=list.jsp'>");del.closeStmt();del.closeConn();}catch(Exception e){response.sendRedirect("err.jsp");}%></body></html>JSP+ Servlet 访问数据库<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title></head><body><form name="form1" method="post" action="servlet"><p>客户查询</p><p>请输入用户名:<input type="text" name="USERNAME"><input type="submit" name="Submit" value="提交"></p><p> </p></form><form name="form2" method="get" action="servlet"><p>根据总数查询</p><p>总数范围在<input type="text" name="totalmin">和<input type="text" name="totalmax">之间</p><p><input type="submit" name="Submit2" value="提交"></p></form><p> </p></body></html>package tree;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;import java.sql.*;public class queryextends HttpServlet {private static final String CONTENT_TYPE = "text/html; charset=GB2312";//Initialize global variablespublic void init() throws ServletException {super.init();}//执行HTTP Post请求public void doPost(HttpServletRequest request,HttpServletResponse response) throwsServletException,IOException{PrintWriter out=response.getWriter();response.setContentType(CONTENT_TYPE);//设置响应的MIME类型。
JSP程序设计教程(第5章)

5.2 JavaBean中的属性
1.简单属性(Simple)
简单属性就是在JavaBean中对应了简单的setXxx()和 getXxx()方法的变量,在创建JavaBean时,简单属性最 为常用。
(2)不可视JavaBean 不可视JavaBean:值JavaBean和工具JavaBean。
5.1.2 JavaBean的种类
值JavaBean严格遵循了JavaBean的命名规范, 通常用来封装表单数据,作为信息的容器。 【例5-1】 值JavaBean示例(User类)
工具JavaBean则可以不遵循JavaBean规范,通常用 于封装业务逻辑,数据操作等,例如连接数据库,对数据 库进行增、删、改、查和解决中文乱码等操作。
中文显示乱码。 解决方法:输出获取的表单数据之前,先进行转码操作。
未转码
转码后
5.4.1 应用JavaBean解决中文 乱码
【例5-9】 应用JavaBean解决中文乱码
public static String toChinese(String str){//工具JavaBean if(str==null) str=""; try {//通过String类的构造方法,将指定的字符串转换为“gb2312”编码 str=new String(str.getBytes("ISO-8859-1"),"gb2312"); } catch (UnsupportedEncodingException e) { str=""; e.printStackTrace(); } return str;
JSP 使用JavaBean
JSP 使用JavaBean我们知道,JavaBean是从JSP页面中分离出来的Java代码,是JSP页面的动态部分。
在这里可以以面向对象的方式来看待JSP页面和JavaBean之间的关系,JSP 页面是一个独立的对象,JavaBean是一个独立的对象,其形式如图4-1所示:图4-1 JSP页面和JavaBean关系从上图中可以看出,JSP页面和JavaBean组件都是独立对象,JSP页面如果要使用JavaBean,必须通过相应语句调用JavaBean,即JSP动作标记。
1.useBean标记在JSP页面中使用JavaBean,必须在JSP页面中有调用另外一个JavaBean对象的语句。
该语句为JSP的动作标签<jsp:useBean>,<jsp:useBean>动作标签主要功能调用一个JavaBean,这里需要注意的是,在使用JavaBean的JSP页面中,最好使用import指令(<@page import=“包名.类名”>)把JavaBean类引入到JSP页面中。
记为useBean标记,语法格式为:上面useBean标记的两种语法格式作用相同,都是创建Bean或从服务器获得现有Bean。
第一个语法格式可以称为空标记,即没有结束标记;第二种语法格式为非空标记,有开始标记和介绍标记。
两种语法格式里面包含的属性含义相同。
●id属性表示在整个页面引用Bean的惟一值,即JavaBean类被引入到当前文件中实例化对象的名称。
该名称具有惟一性、区分大小写、第一个字符必须为字母和不允许有空格等特性。
可以在同一个JSP页面,多次引用一个JavaBean类,但需要为该JavaBean指定不同的id值。
●class属性表示在JSP页面中引入的JavaBean的类名,即JavaBean所处位置。
其写法有两种形式,第一种形式为JavaBean不属于特定的包,如下所示:第二种形式是JavaBean属于一个特定的包,其语法格式如下所示:有四个值,分别为page、request、session、application。
T12 JSP与javabean与jdbc的综合应用
数据库设计
通过以上对通讯录功能的描述可以分析出数据库至少 需要两个表来保存信息,其中一个保存用户信息, 需要两个表来保存信息,其中一个保存用户信息,这个表 起名为“ 起名为“users”。 ”
另一个表命名为“ 另一个表命名为“address”,用于保存用户添加的通讯信息。 ” 用于保存用户添加的通讯信息。
数据库应用 --分页实现 分页实现
使用Vector实现缓存 实现缓存 使用
先将所有记录都select出来,然后将ResultSet中 出来,然后将 先将所有记录都 出来 中 的数据都get出来 存入Vector等集合类中,再 出来, 等集合类中, 的数据都 出来,存入 等集合类中 根据所需分页的大小,页数, 根据所需分页的大小,页数,定位到相应的位 置,读取数据
数据库应用 --分页实现 分页实现
定位即将显示的页码中第一个纪录位置: 定位即将显示的页码中第一个纪录位置:
sqlRst.absolute( (intPage-1) * intPageSize + 1 ); 通过绝对定位来制定结果集中指针的位置 每页显示4条纪录 intPageSize = 4 开始 结果集中的指针下标从1开始 结果集中的指针下标从
总 结
掌握
实例应用: 实例应用:数据库分页技术的实现
项目实践
理论作业
1、实现数据库查询分页一般有几种方式 分 、实现数据库查询分页一般有几种方式,分 别简单介绍? 别简单介绍? 2、JSP与SERVLET的区别 、 与 的区别 3、JSP的内置对象由什么得到的 3、JSP的内置对象由什么得到的
usebean的用法
usebean的用法一、概述usebean是JSP中的一个标签,主要用于在JSP页面中创建JavaBean对象,并将其作为一个变量存储在page、request或session范围内,以便在后续的代码中使用。
二、语法usebean标签的语法如下:<jsp:useBean id="beanName" class="className"scope="scopeName"/>其中,id属性用于指定JavaBean对象的名称,class属性用于指定JavaBean对象所属的类名,scope属性用于指定JavaBean对象存储的范围。
三、使用方法1. 创建JavaBean类首先需要创建一个JavaBean类,该类需要包含一些成员变量和对应的getter和setter方法。
例如:public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}2. 在JSP页面中使用usebean标签创建JavaBean对象在JSP页面中使用usebean标签创建JavaBean对象,并将其存储在page、request或session范围内。
例如:<jsp:useBean id="user" class="er"scope="session"/>3. 使用EL表达式访问JavaBean对象通过EL表达式可以方便地访问存储在page、request或session范围内的JavaBean对象。
JSP课件5 JSP与JavaBean
健壮的Web 应用提倡将表示和处理相 健壮的 Web应用提倡将表示和处理相 Web 分离,JavaBean也可以实现这一功能 也可以实现这一功能。 分离,JavaBean也可以实现这一功能。 JavaBean是一个可重复使用的软件组 JavaBean 是一个可重复使用的软件组 是遵循一定标准、 Java语言编写的 件,是遵循一定标准、用Java语言编写的 一个类,该类的一个实例称为一个 JavaBean,简称bean bean。 JavaBean,简称bean。 JSP页面可以将数据处理指派给一个 JSP 页面可以将数据处理指派给一个 或者几个bean来完成。当类编写好后, bean来完成 或者几个bean来完成。当类编写好后,在 JSP页面中只需要调用bean。 页面中只需要调用bean JSP页面中只需要调用bean。
3. JSP页面中使用 页面中使用bean 1 页面中使用
使用 JSP动作标记 : useBean 。 useBean 标记的 使用JSP 动作标记 useBean。 useBean标记的 JSP 动作标记: 格式: 格式: <jsp:useBean id= "给bean起的名字 class= "创 给 起的名字" 创 起的名字 的类" 有效范围"> 建bean的类 scope= "bean有效范围 的类 有效范围 </jsp:useBean> 起的名字” 或<jsp:useBean id= “给bean起的名字” class= 给 起的名字 “创建 创建bean的类” scope= “bean有效范围”/> 的类” 有效范围” 创建 的类 有效范围 当某个 JSP 页面要使用 bean 时 , Tomcat 先根据 当某个JSP 页面要使用bean JSP页面要使用 bean时 Tomcat先根据 id查找是否已经存在一个同名同范围的bean, 查找是否已经存在一个同名同范围的bean id查找是否已经存在一个同名同范围的bean, 如果存在, 就把它的副本分配给JSP 页面, JSP页面 如果存在 , 就把它的副本分配给 JSP 页面 , 如 果没有,就用bean的类创建一个bean,后续的 果没有, 就用bean的类创建一个bean, bean的类创建一个bean JSP页面则只需使用 页面则只需使用。 JSP页面则只需使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3)在JSP页面result.jsp中输出圆的周长和面积。
2、新建一个名为changeStr工程,创建一个名为DoString的工具JavaBean,用来转换字符串为“<”与">"字符。在此基础上,在index.jsp页面中创建一个表单用于输入留言标题以及留言内容。index.jsp页面具体内容见(106页图5-9左图)。表单提交到页面result.jsp(见106页图5-9右图),经过DoString工具Bean的字符转换后,将转换后的内容返回给客户端。
Contex=JavaBeen.toChinese(Contex);
%>
<tableborder="1"width="50%">
<tr><tdheight="40"align="center">标题:</td><tdheight="40"align="left"><%=Title%></td></tr>
doubleRadius=Double.parseDouble(radius);
doublepare=circleBeen.Parimeter(Radius);
doublearea=circleBeen.Area(Radius);
out.print("圆的周长为:"+pare);
out.print("<br>");
<tr><tdheight="40"align="center">内容:</td><tdheight="40"align="left"><%=Contex%></td></tr>
</table>
</body>
</html>
三、实验结果及分析(可另加附页)
1.运行服务器,部署工程,在Web Browser输入:http://localhost:8080/circle。输入半径,然后点击“开始计算”。
out.print("圆的面积为:"+area);
%>
</body>
</html>
题目二:
1.changeStr工程
importjava.io .UnsupportedEncodingException;
publicclassJavaBeen {
publicstaticString DoString(String str){
<body>
<formaction="result.jsp"method="post">
请输入圆的半径:<br>
<inputtype="text"name="r"size="8">
<inputtype="submit"name="submit"value="开始计算">
<br>
</form>
</body>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
}
catch(UnsupportedEncodingException e){
Str="";
e.printStackTrace();
}
returnStr;
}
}
2.index.jsp页面
<html>
<body>
<formaction="result.jsp">
标题:
<inputtype="text"name="title"size=“25”>
str=str.replaceAll("<","<");
str=str.replaceAll("<",">");
returnstr;
}
publicstaticString toChinese(String Str){
if(Str==null)
Str="";
try{
Str =newString(Str.getBytes("ISO-8859-1"),"utf-8");
<br>
内容:
<textareatypr="text"name="contex"rows="6"cols="30"></textarea>
<br>
<inputtype="Submit"value="留言">
<inputtype="Reset"value="重置">
</Байду номын сангаасorm>
</body>
</html>
实验名称:在JSP页面中使用JavaBean
实验者:陈宏瑞日期:11月4号
一、预习:实验内容及要求
1、新建一个工程circle,编写一个计算圆周长和面积的JavaBean ComputeCircle,使用一个JSP页面调用该JavaBean。
要求:
(1)在JSP页面index.jsp中用表单输入圆的半径。
</html>
3.页面result.jsp
<%@pagelanguage="java"import="java.util.*,ComputerCircle.circleBeen"pageEncoding="utf-8"%>
<html>
<body><%
String radius=request.getParameter("r");
3.页面result.jsp
<html>
<body><%
String Title=request.getParameter("title");
String Contex=request.getParameter("contex");
Title=JavaBeen.DoString(Title);
Title=JavaBeen.toChinese(Title);
二、实验步骤及过程(可以附算法)
题目一:
1.circle,java
packageComputerCircle;
publicclasscircleBeen {
privatedoubler;
publicdoublegetR() {
returnr;
}
publicvoidsetR(doubler) {
this.r= r;
}
publicstaticdoubleParimeter(doubler){
return2*Math.PI*r;
}
publicstaticdoubleArea(doubler){
returnMath.PI*r*r;
}
}
2.页面index.jsp
<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
2.在Web Browser输入:http://localhost:8080/ChangeStr。输入内容,点击“留言”,如果发现想重新输入,也可以点击“重置”。跳转留言板后,可以继续留言。
四、教师评价
指导教师签名: