JAVAEE实验报告3 石博洋.docx

上传人:b****8 文档编号:11472363 上传时间:2023-03-01 格式:DOCX 页数:13 大小:74.92KB
下载 相关 举报
JAVAEE实验报告3 石博洋.docx_第1页
第1页 / 共13页
JAVAEE实验报告3 石博洋.docx_第2页
第2页 / 共13页
JAVAEE实验报告3 石博洋.docx_第3页
第3页 / 共13页
JAVAEE实验报告3 石博洋.docx_第4页
第4页 / 共13页
JAVAEE实验报告3 石博洋.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

JAVAEE实验报告3 石博洋.docx

《JAVAEE实验报告3 石博洋.docx》由会员分享,可在线阅读,更多相关《JAVAEE实验报告3 石博洋.docx(13页珍藏版)》请在冰豆网上搜索。

JAVAEE实验报告3 石博洋.docx

JAVAEE实验报告3石博洋

《JavaEE与中间件技术专题实验》课程

实验报告三

班级:

计算机1602班学号:

201610333姓名:

石博洋

实验内容:

1.综合应用。

本实验采用MVC设计模式,通过数据源和DAO对象访问数据库。

其中JavaBeans实现模型,访问数据库,JSP(实现业务逻辑,不输出任何内容;学习Servlet之后使用Servlet)实现控制器,JSP页面实现视图。

模型包括2个JavaBean:

BookBean用于存放图书信息,BookDAO用于访问数据库。

控制器包括2个JSP:

BookQueryProcess.jsp根据请求参数查询图书信息、BookInsertProcess.jsp用来向数据库中插入数据。

视图包括4个JSP页面:

bookQuery.jsp显示查询页面、bookInsert.jsp显示插入页面、display.jsp显示查询结果页面和errorPage.jsp显示错误页面。

(查询页面需要支持模糊查询;组合查询(可对任意字段组合进行查询)作为加分项)

1、给出实现的方案。

本次项目将由2个JavaBean(BookBean用于存放图书信息,BookDAO用于访问数据库),2个JSP(BookQueryProcess.jsp根据请求参数查询图书信息、BookInsertProcess.jsp用来向数据库中插入数据),4个JSP页面(bookQuery.jsp显示查询页面、bookInsert.jsp显示插入页面、display.jsp显示查询结果页面和errorPage.jsp显示错误页面),,JavaBeans实现模型,访问数据库,JSP实现控制器,JSP页面实现视图。

 

二、设计效果(截图,需要附加说明文字)

图1查询界面

图2输入所要查询的书号

图3查询结果

图4增加图书页面

图5输入图书信息

图6添加成功

图7数据库存储信息

三、按文件给出每一个JSP页面的核心源码。

1.bookQuery.jsp

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

DOCTYPEhtml>

查询图书信息

请输入一个书号:



 

2.BookQueryServlet.jsp

<%@pagelanguage="java"import="com.bean.*"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

DOCTYPEhtml>

Inserttitlehere

<%

Stringbookid=request.getParameter("bookid");

BookDAObookdao=newBookDAO();

BookBeanbook=bookdao.searchBook(bookid);

if(book!

=null){

request.getSession().setAttribute("book",book);

RequestDispatcherview=request.getRequestDispatcher("/display.jsp");

view.forward(request,response);

}else{

RequestDispatcherview=request.getRequestDispatcher("/errorPage.jsp");

view.forward(request,response);

}

%>

3.bookInsert.jsp

<%@pagelanguage="java"contentType="text/html;charset=UTF-8"

pageEncoding="UTF-8"%>

DOCTYPEhtml>

插入数据

请输入图书信息:

<%if(request.getAttribute("result")!

=null)

out.print(request.getAttribute("result"));

%>

书号
书名
作者
出版社
单价

4.BookInsertServlet.jsp

<%@pagelanguage="java"import="com.bean.*"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>

DOCTYPEhtml>

Inserttitlehere

<%

request.setCharacterEncoding("utf-8");

Stringmessage=null;

BookBeanbook=newBookBean(

request.getParameter("bookid"),request.getParameter("title"),

request.getParameter("author"),request.getParameter("publisher"),

Float.parseFloat(request.getParameter("price")));

BookDAObookdao=newBookDAO();

booleansuccess=bookdao.insertBook(book);

if(success){

message="成功插入一条记录!

";

}else{

message="插入记录错误!

";

}

request.setAttribute("result",message);

RequestDispatcherview=request.getRequestDispatcher("/bookInsert.jsp");

view.forward(request,response);

%>

5.display.jsp

<%@pagecontentType="text/html;charset=utf-8"%>

useBeanid="book"class="com.bean.BookBean"scope="session"/>

查询页面

书号:

getPropertyname="book"property="bookid"/>

书名:

getPropertyname="book"property="title"/>

作者:

getPropertyname="book"property="author"/>

出版社:

getPropertyname="book"property="publisher"/>

价格:

getPropertyname="book"property="price"/>

6.displayBooks.jsp

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.sql.*"%>

访问数据库

<%

try{

Class.forName("com.mysql.jdbc.Driver");

Stringdburl="jdbc:

mysql:

//localhost:

3306/db_bookstore";

Connectionconn=DriverManager.getConnection(dburl,"root","root");

Statementstmt=conn.createStatement();

Stringsql="SELECT*FROMbooks";

ResultSetrs=stmt.executeQuery(sql);

out.println("");

out.println("书号书名作者价格");

while(rs.next()){

out.println(""+rs.getString

(1)+""+rs.getString

(2)

+""+rs.getString(3)+""+rs.getString(5)+"");

}

out.println("");

rs.close();

stmt.close();

conn.close();

}catch(Exceptione){

out.println(e.getMessage());

}

%>

7.errorPage.jsp

对不起,您查的图书不存在!

8.BookBean.java

packagecom.bean;

importjava.io.*;

publicclassBookBeanimplementsSerializable{

privateStringbookid=null;

privateStringtitle=null;

privateStringauthor=null;

privateStringpublisher=null;

privatefloatprice=0.0F;

publicBookBean(){}

publicBookBean(StringbookId,Stringauthor,

Stringtitle,Stringpublisher,floatprice){

this.bookid=bookId;

this.title=title;

this.author=author;

this.publisher=publisher;

this.price=price;

}

publicStringgetBookid(){returnthis.bookid;}

publicStringgetTitle(){returntitle;}

publicStringgetAuthor(){returnthis.author;}

publicfloatgetPrice(){returnprice;}

publicStringgetPublisher(){returnpublisher;}

publicvoidsetBookid(Stringbookid){this.bookid=bookid;}

publicvoidsetTitle(Stringtitle){this.title=title;}

publicvoidsetAuthor(Stringauthor){this.author=author;}

publicvoidsetPrice(floatprice){this.price=price;}

publicvoidsetPublisher(Stringpublisher){this.publisher=publisher;}

}

9.BookDAO.java

packagecom.bean;

importjava.sql.*;

importjavax.sql.*;

importjavax.naming.*;

importjava.util.ArrayList;

importcom.bean.BookBean;

publicclassBookDAO{

privatestaticInitialContextcontext=null;

privateDataSourcedataSource=null;

publicBookDAO(){

try{

if(context==null){

context=newInitialContext();

}

dataSource=(DataSource)context.lookup("java:

comp/env/jdbc/bookDS");

}catch(NamingExceptione2){

}

}

publicBookBeansearchBook(Stringbookid){

Connectionconn=null;

PreparedStatementpstmt=null;

ResultSetrst=null;

BookBeanbook=newBookBean();

try{

conn=dataSource.getConnection();

pstmt=conn.prepareStatement("SELECT*FROMbooksWHEREbookid=?

");

pstmt.setString(1,bookid);

rst=pstmt.executeQuery();

if(rst.next()){

book.setBookid(rst.getString("bookid"));

book.setTitle(rst.getString("title"));

book.setAuthor(rst.getString("author"));

book.setPublisher(rst.getString("publisher"));

book.setPrice(rst.getFloat("price"));

returnbook;

}else{

returnnull;

}

}catch(SQLExceptionse){

returnnull;

}finally{

try{

rst.close();

pstmt.close();

conn.close();

}catch(SQLExceptionse){

}

}

}

publicbooleaninsertBook(BookBeanbook){

Connectionconn=null;

PreparedStatementpstmt=null;

try{

conn=dataSource.getConnection();

pstmt=conn.prepareStatement(

"INSERTINTObooksVALUES(?

?

?

?

?

)");

pstmt.setString(1,book.getBookid());

pstmt.setString(2,book.getTitle());

pstmt.setString(3,book.getAuthor());

pstmt.setString(4,book.getPublisher());

pstmt.setFloat(5,book.getPrice());

pstmt.executeUpdate();

returntrue;

}catch(SQLExceptionse){

returnfalse;

}finally{

try{

pstmt.close();

conn.close();

}catch(SQLExceptionse){}

}

}

}

四、实验过程中遇到的问题及解决办法。

1.遇到的问题:

无法连接到数据库

解决办法:

修改context.xml连接数据库的密码。

2.遇到的问题:

页面之间跳转出现问题

解决办法:

修改action里面的路径。

3.遇到的问题:

数据库存储的数据乱码

解决办法:

修改字符集,使数据库与程序保持一致

五、实验总结。

在本次实验中,我们主要学习了如何运用传统的JDBC访问数据库,该方法主要是通过JSP页面访问数据库。

数据库作为Web应用过程当中的一个重要分支,对它的掌握与运用意义深远,应当熟练的掌握这个访问,以便为今后学习Web的过程中提供坚实的基础。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1