软件开发基础(.Java)实验指导书V2(10)
三、编程题
【步骤1】创建一个名为input.html的HTML页面,其中包括一个表单,表单中包含两个文本域,分别供用户输入学号和姓名,该页面也包含提交和重置按钮。
【步骤2】定义一个名为com.demo.Student类,其中包括学号sno和姓名name两个private的成员变量,定义访问和修改sno和name的方法。
【步骤3】编写名为FirstServlet的Servlet,要求当用户在input.html中输入信息后点击“提交”按钮,请求FirstServlet对其处理。在FirstServlet中使用表单传递的参数(学号和姓名)创建一个Student对象并将其作为属性存储在ServletContext对象中,然后获得通过ServletContext的getRequestDispatcher()方法获得RequestDispatcher()对象,将请求转发到SecondServlet。
【步骤4】在SecondServlet中取出ServletContext上存储的Student对象,并显示输出该学生的学号和姓名。在SecondServlet的输出中应该包含一个超链接,点击该连接可以返回input.html页面。
图4.2 input.html页面显示结果图4.3 SecondServlet显示结果
四、实验结果
写实验报告。内容包括:
1、习题的运行结果,源程序。 2、程序调试中出现的错误提示。(英文、中文对照)
5、若有没通过的程序,分析原因。
五、思考题
1. 如何通过ServletConfig获得Servlet参数?
2. 如何获得ServletContext对象,如何通过该对象获得上下文参数? 3. 如何使用ServletContext共享数据?
29
实验8 综合性实验
一、实验目的
1、掌握基于MVC的三层架构。 二、实验题目
通过数据源和DAO对象访问数据库。其中JavaBeans实现模型,访问数据库,Servlet实现控制器,JSP页面实现视图。
模型包括2个JavaBean:BookBean用于存放图书信息,BookDAO用于访问数据库。 ? 控制器包括2个Servlet:BookQueryServlet根据请求参数查询图书信息、
BookInsertServlet用来向数据库中插入数据。 ? 视图包括4个JSP页面:bookQuery.jsp显示查询页面、bookInsert.jsp显示插入页面、
display.jsp显示查询结果页面和errorPage.jsp显示错误页面。
?
三、参考实现
实验采用MVC设计模式,
【步骤1】存放图书信息的JavaBeans代码BookBean.java,它也是一个传输对象。 package com.beans; import java.io.*;
public class BookBean implements Serializable{ private String bookid = null; private String title = null; private String author = null; private String publisher = null; private float price = 0.0F;
public BookBean(){}
public BookBean(String bookId, String author,
String title, String publisher,float price) { this.bookid = bookId; this.title = title; this.author = author;
this.publisher = publisher;
this.price = price;
}
public String getBookid() { return this.bookid; } public String getTitle() { return title; }
public String getAuthor() { return this.author; } public float getPrice() { return price; }
public String getPublisher () { return publisher; }
public void setBookid(String bookid){ this.bookid=bookid; } public void setTitle(String title){this.title=title; }
public void setAuthor(String author){ this. author = author; } public void setPrice(float price){this.price=price; }
30
public void setPublisher (String publisher){ this.publisher = publisher;} }
【步骤2】下面的BookDAO是一个简单的JavaBeans,它实现数据库的访问。 package com.beans; import java.sql.*; import javax.sql.*; import javax.naming.*; import java.util.ArrayList; import com.beans.BookBean;
public class BookDAO{
private static InitialContext context= null; private DataSource dataSource = null;
public BookDAO(){ try{ if(context == null){ context = new InitialContext(); } dataSource = (DataSource)context.lookup(\ }catch(NamingException e2){ } }
// 根据书号查询图书信息
public BookBean searchBook(String bookid){ Connection conn = null;
PreparedStatement pstmt = null; ResultSet rst = null;
BookBean book = new BookBean(); try{
conn = dataSource.getConnection(); pstmt = conn.prepareStatement(\ pstmt.setString(1,bookid); rst = pstmt.executeQuery(); if(rst.next()){ book.setBookid(rst.getString(\ book.setTitle(rst.getString(\ book.setAuthor(rst.getString(\
book.setPublisher(rst.getString(\ book.setPrice(rst.getFloat(\ return book; }else{
return null; }
31
}catch(SQLException se){ return null; }finally{ try{ conn.close(); }catch(SQLException se){ } } }
// 插入一本图书记录
public boolean insertBook(BookBean book){ Connection conn = null; PreparedStatement pstmt = null; try{ conn = dataSource.getConnection(); pstmt = conn.prepareStatement( \ pstmt.setString(1,book.getBookid()); pstmt.setString(2,book.getTitle()); pstmt.setString(3,book.getAuthor()); pstmt.setString(4,book.getPublisher()); pstmt.setFloat(3,book.getPrice()); pstmt.executeUpdate(); pstmt.close(); return true; }catch(SQLException se){ return false; }finally{ try{ conn.close(); }catch(SQLException se){ } } } }
【步骤3】下面的JSP页面bookQuery.jsp实现根据书号查询图书信息 <%@ page contentType=\
请输入一个书号:
32
【步骤4】下面的JSP页面bookInsert.jsp实现向数据库中插入数据 <%@ page contentType=\
请输入图书信息:
<% if(request.getAttribute(\ out.print(request.getAttribute(\%>
【步骤5】显示查询结果的JSP页面display.jsp:
<%@ page contentType=\
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




