JSP与JavaBean
来源:互联网 发布:o2o创业项目 php 编辑:程序博客网 时间:2024/06/01 08:44
编写JavaBean
Student类:
package xxx.xxx.model;public class Student { private String stuno; //String类型 private String stuname; private boolean member; //boolean类型 private String[] phones; //String[] 类型 public String getStuno() { return stuno; } public void setStuno(String stuno) { this.stuno = stuno; } public String getStuname() { return stuname; } public void setStuname(String stuname) { this.stuname = stuname; } public boolean isMember() { return member; } public void setMember(boolean member) { this.member = member; } public String[] getPhones() { return phones; } public void setPhones(String[] phones) { this.phones = phones; }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
在JSP中使用JavaBean(以Student为例)
定义JavaBean:< jsp:useBean >标签
<jsp:useBean id="student" class="xxx.xxx.model.Student"></jsp:useBean>
- 1
设置JavaBean属性:< jsp:setProperty >标签
- 属性值的来源是字符串时:
<jsp:useBean id="student" class="xxx.xxx.model.Student"></jsp:useBean><jsp:setProperty property="stuname" name="student" value="Tony"/>
- 1
- 2
- 属性值的来源是请求参数时:
<jsp:useBean id="student" class="xxx.xxx.model.Student"></jsp:useBean><jsp:setProperty property="stuname" name="student" param="studentName"/>
- 1
- 2
相当于:
<jsp:useBean id="student" class="xxx.xxx.model.Student"></jsp:useBean><% String str = request.getParameter("studentName"); %><jsp:setProperty property="stuname" name="student" value=<%=str %>/>
- 1
- 2
- 3
获取JavaBean属性:< jsp:getProperty >标签
<jsp:getProperty property="stuname" name="student"/>
- 1
JavaBean的范围
jsp:useBean动作:
<jsp:useBean id="idName" class="package.class" scope="page|session|..."></jsp:useBean>
- 1
scope属性值:
- page:表示JavaBean对象的作用范围只是在其实例化的页面上,只在当前页面可用,在别的页面中不能被认识到。
- request:表示JavaBean实例除了可以在当前页面上可用之外,还可以在通过forward方法跳转的目标页面中被认识到。
- session:表示JavaBean对象可以存在session中,该对象可以被同一个用户一次会话的所有页面认识到。
- application:表示JavaBean对象可以存在application中,该对象可以被所有用户的所有页面认识到。
page范围:
page1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><jsp:useBean id="student" class="xxx.xxx.model.Student" scope="page"> <jsp:setProperty property="stuname" name="student" value="Tony" /></jsp:useBean><html> <body> 学生姓名:<jsp:getProperty property="stuname" name="student" /> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
page2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><jsp:useBean id="student" class="xxx.xxx.model.Student" scope="page"></jsp:useBean><html> <body> 学生姓名:<jsp:getProperty property="stuname" name="student" /> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
request范围:
request1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><jsp:useBean id="student" class="xxx.xxx.model.Student" scope="request"> <jsp:setProperty property="stuname" name="student" value="Tony" /></jsp:useBean><html> <body> <jsp:forward page="request2.jsp" /> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
request2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><jsp:useBean id="student" class="xxx.xxx.model.Student" scope="request"></jsp:useBean><html> <body> 学生姓名:<jsp:getProperty property="stuname" name="student" /> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
session范围:
session1.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><jsp:useBean id="student" class="xxx.xxx.model.Student" scope="session"> <jsp:setProperty property="stuname" name="student" value="Tony" /></jsp:useBean><html> <body> 学生姓名:<jsp:getProperty property="stuname" name="student" /> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
session2.jsp:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><jsp:useBean id="student" class="xxx.xxx.model.Student" scope="session"></jsp:useBean><html> <body> 学生姓名:<jsp:getProperty property="stuname" name="student" /> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
application范围:(省略)
DAO与VO:
DAO类:专门负责对数据库的访问。
VO:在DAO中,可以每查询到一条记录,就将其封装为Student对象,该Student对象就是VO,上面的Student就可以充当VO的角色。
编写DAO和VO:
t_student表结构:
t_student表数据:
StudentDao类:
package xxx.xxx.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;import java.util.ArrayList;import xxx.xxx.model.Student;public class StudentDao { public ArrayList queryAllStudents() throws Exception { ArrayList students = new ArrayList(); String url = "jdbc:mysql://localhost:3306/javabean?useUnicode=true&characterEncoding=GBK"; String user = "root"; String password = "123456"; //获取连接 Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url,user,password); //执行SQL语句 String sql = "select stuno,stuname from t_student"; Statement stat = conn.createStatement(); ResultSet rs = stat.executeQuery(sql); while(rs.next()) { Student student = new Student(); student.setStuno(rs.getString("stuno")); student.setStuname(rs.getString("stuname")); students.add(student); } //关闭连接 rs.close(); stat.close(); conn.close(); return students; }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
在JSP中使用DAO与VO:
daoExample.jsp:
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="GB18030"%><%@ page import="xxx.xxx.model.Student" %><%@ page import="xxx.xxx.dao.StudentDao" %><html> <body> <% StudentDao studentDao = new StudentDao(); ArrayList students = studentDao.queryAllStudents(); for(int i = 0; i < students.size(); i++) { Student student = (Student)students.get(i); out.println(student.getStuno()+", "+student.getStuname()+"<br>"); } %> </body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
意外:Class Not Found: javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
意外地出现了这个异常,刚开始是以为没有加入mysql-connector-jar-5.1.28-bin.jar驱动包,后面Build Path加入这个jar驱动包后还是出现这个异常,后面查了一下,发现是WEB-INF目录下的lib文件夹要加入这个jar驱动包(忘记这个是Web Project…)。
具体做法:
解决方法参考这里
阅读全文
0 0
- JSP+JavaBean与JSP+Servlet+JavaBean模型
- JSP与JavaBean
- JSP与JavaBean详谈
- JSP与JavaBean
- JSP与JavaBean
- JSP与JAVABEAN应用
- JSP与JavaBean简介
- JavaBean与JSP
- jsp与JavaBean
- JavaBean与JSP
- javabean与jsp
- JSP与Javabean
- JSP与JavaBean
- JSP与javaBean
- jsp与javaBean NoClassDefFoundError
- JSP 与 javaBean
- javaBean与jsp
- jsp与javabean(上)
- ReactNative获取ListView当前界面展示的row的个数
- Android 如何对apk文件进行反编译以及重新打包签名 标签: apktoolandroid反编译jebSmali2Java 2016-05-10 16:00 3897人阅读 评论(0) 收藏
- jzoj. 3873. 【NOIP2014八校联考第4场第2试10.20】乐曲创作(music)
- 堆与堆排序
- 《Linux内核设计与实现》读书笔记(九)- 内核同步介绍
- JSP与JavaBean
- HDU 5171 GTY's birthday gift(矩阵快速幂模板)
- Ubuntu安装opencv
- jquery attr prop checkbox已有checked=checked但不显示勾选问题
- 计算机导论第五课之程序怎么样运行
- C语言基础编程(switch语句)
- C语言解析MNIST数据集
- 面试笔试--TCP/IP知识点
- 有虚继承的类其有几个虚继承的基类则该类就有几个虚表