- 浏览: 319176 次
- 性别:
- 来自: 济南
文章分类
- 全部博客 (221)
- J2SE心得 (4)
- 经典帖子 (8)
- 亲身经历 (9)
- SSH框架 (12)
- 数据库 (10)
- java基础知识 (41)
- java解惑 (17)
- 软件测试 (0)
- JSP (6)
- JavaScript (8)
- jQuery学习 (12)
- 硬件知识 (1)
- 工具类 (14)
- 面试专题 (4)
- Struts2专题(学习) (14)
- Spring源码分析专题(学习) (15)
- JavaScript专题(学习) (8)
- ExtJs专题(学习) (6)
- Java Web快速入门——全十讲 (10)
- web前台 (1)
- J2ME手机方面 (1)
- 积累整理 (1)
- MyEclipse工具篇 (10)
- oracle (1)
- Android基础 (1)
最新评论
-
youjianbo_han_87:
上传成功后,无法跳转到success页面,会报2038和404 ...
Struts2使用FlashFileUpload.swf实现批量文件上传 -
showzh:
...
MyEclipse 怎么安装SVN插件 -
wpf523:
赞一个啊,楼主加油
一些比较复杂的运算符(二) -
独步天下:
request.getSession().getAttribute() 和request.getSession().setAttribute() -
HelloJava1234:
thank you
怎么改变MyEclipse默认的jsp打开方式
1、删除功能设计
1)V部分
输入:可以在图书列表界面中添加一列,使用超链链接到删除功能,需要把将要删除的图书的编号传递过去。
输出:删除成功或者失败的提示界面。
2)M部分
删除功能需要在BookBean添加一个删除的方法,方法需要参数来指定删除哪一本书。
3)C部分
4句话:从输入界面获取要删除的图书的编号;根据编号调用JavaBean的删除图书的方法;把删除成功或者失败的消息传递到界面(通过request);转向响应界面。
2、输入界面
在books.jsp中的表格后面增加一列。
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="header.jsp"%>
<tr>
<td>
<table align="center" border="1">
<tr>
<td>图书编号</td><td>图书名称</td><td>作者</td><td>价格</td><td>出版社</td><td></td>
</tr>
<!-- c:forEach用于循环控制,items属性指出要循环遍历的集合,var定义一个循环变量,表示集合中的一个元素 -->
<c:forEach var="book" items="${books}">
<tr>
<td>${book.bookid}</td>
<td>${book.bookname}</td>
<td>${book.author}</td>
<td>${book.price}</td>
<td>${book.publisher}</td>
<td> <a href="deleteBook?bookid=${book.bookid}">删除</a> </td>
</tr>
</c:forEach>
</table>
</td>
</tr>
</table>
3、输出界面
把success.jsp作为输出界面。
4、M部分
在BookBean中添加deleteBook方法,代码如下:
// 根据编号删除图书
public boolean deleteBook(String bookid){
// 表示删除成功还是失败
boolean success=true;
// 编写SQL语句
String sql = "delete from books where bookid=?";
try{
// 创建语句对象
createStatement(sql);
// 对SQL中的参数赋值
stmt.setString(1,bookid);
if( stmt.executeUpdate()>0 )
success = true;
else
success = false;
}catch(Exception e){
success = false;
System.out.println(e.toString());
}finally{
close();
}
return success;
}
5、C部分
记住4句话即可。参考代码如下:
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import bean.*;
import java.util.ArrayList;
public class DeleteBook extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
// 第一句话:获取要删除的图书
String bookid = request.getParameter("bookid");
// 第二句话:调用JavaBean,创建对象、初始化、然后调用方法
BookBean book = new BookBean();
boolean success = book.deleteBook(bookid);
// 第三句话:向页面传递信息,第一个参数是使用的名字,应该和显示时候使用的名字一致,第二个参数传递的值本身
String info;
if(success)
info="删除成功!";
else
info="删除失败";
request.setAttribute("info",info);
// 第四句话:转向响应界面
RequestDispatcher rd = request.getRequestDispatcher("success.jsp");
rd.forward(request,response); // 完成跳转
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
doGet(request,response);
}
}
在web.xml中添加配置,相关代码如下:
<servlet>
<servlet-name>deleteBook</servlet-name>
<servlet-class>servlet.DeleteBook</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>deleteBook</servlet-name>
<url-pattern>/deleteBook</url-pattern>
</servlet-mapping>
6、图书信息修改功能设计
用户操作过程:首先先显示要修改的图书信息,然后修改后提交更新数据库。
首先考虑显示信息的过程:根据用户的选择显示相应图书的信息。
采用MVC模式设计如下:
V部分:输入可以采用与删除功能类似的方式,在图书列表之后增加一修改列。输出是修改界面。
M部分:根据图书编号查询图书信息。需要在BookBean中添加一个根据编号查询图书的方法。
C部分:4句话,获取图书编号;把编号作为参数调用JavaBean中查询图书的方法;把查询到的图书对象保存到request;转向修改界面。
7、输入界面
修改books.jsp
<%@ page contentType="text/html;charset=gb2312"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ include file="header.jsp"%>
<tr>
<td>
<table align="center" border="1">
<tr>
<td>图书编号</td><td>图书名称</td><td>作者</td><td>价格</td><td>出版社</td><td></td><td></td>
</tr>
<!-- c:forEach用于循环控制,items属性指出要循环遍历的集合,var定义一个循环变量,表示集合中的一个元素 -->
<c:forEach var="book" items="${books}">
<tr>
<td>${book.bookid}</td>
<td>${book.bookname}</td>
<td>${book.author}</td>
<td>${book.price}</td>
<td>${book.publisher}</td>
<td> <a href="deleteBook?bookid=${book.bookid}">删除</a> </td>
<td> <a href="findBookByID?bookid=${book.bookid}">修改</a> </td>
</tr>
</c:forEach>
</table>
</td>
</tr>
</table>
8、输出界面
修改界面:显示从控制器传递过来的BookBean对象book。
<%@ page contentType="text/html;charset=gb2312"%>
<%@ include file="header.jsp"%>
<tr>
<td>
<form action="updateBook" method="post" name="form1">
<table align="center">
<tr>
<td>图书编号:</td>
<td><input type="hidden" name="bookid" value="${book.bookid}">${book.bookid}</td>
</tr>
<tr>
<td>图书名:</td>
<td><input type="text" name="bookname" value="${book.bookname}"></td>
</tr>
<tr>
<td>作者:</td>
<td><input type="text" name="author" value="${book.author}"></td>
</tr>
<tr>
<td>价格:</td>
<td><input type="text" name="price" value="${book.price}"></td>
</tr>
<tr>
<td>出版社:</td>
<td><input type="text" name="publisher" value="${book.publisher}"></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
<td><input type="reset" value="重写"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>
9、编写根据ID查询图书的方法
在BookBean中添加方法
// 根据编号查询图书
public BookBean findBookByID(String bookid){
BookBean book=new BookBean();
String sql = "select * from books where bookid=?";
try{
createStatement(sql);
stmt.setString(1,bookid);
rs = executeQuery();
// 转换成对象
rs.next();
// 使用rs的getString方法,以字符串的形式获取第一列,参数也可以是列的名字
// 可以得到当前记录的每一列
String tempBookname = rs.getString(2);
String tempAuthor = rs.getString(3);
float tempPrice = rs.getFloat(4);
String tempPublisher = rs.getString(5);
// 创建图书对象
book.setBookid(bookid);
book.setBookname(tempBookname);
book.setAuthor(tempAuthor);
book.setPrice(tempPrice);
book.setPublisher(tempPublisher);
}catch(Exception e){
System.out.println(e.toString());
}finally{
close();
}
return book;
}
10、编写Servlet控制器
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import bean.*;
import java.util.ArrayList;
public class FindBookByID extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
// 第一句话:获取用户选择图书编号
String bookid = request.getParameter("bookid");
// 第二句话:调用JavaBean,创建对象、初始化、然后调用方法
BookBean book = new BookBean();
book = book.findBookByID(bookid);
// 第三句话:向页面传递信息,第一个参数是使用的名字,应该和显示时候使用的名字一致,第二个参数传递的值本身
request.setAttribute("book",book);
// 第四句话:转向响应界面
RequestDispatcher rd = request.getRequestDispatcher("updateBook.jsp");
rd.forward(request,response); // 完成跳转
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
doGet(request,response);
}
}
在web.xml中配置:
<servlet>
<servlet-name>findBookByID</servlet-name>
<servlet-class>servlet.FindBookByID</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>findBookByID</servlet-name>
<url-pattern>/findBookByID</url-pattern>
</servlet-mapping>
11、修改功能的设计
V部分:输入是修改界面不用修改,只要设置form的action属性为updateBook即可。输出可以采用success.jsp界面。
M部分:在BookBean中添加修改方法。
C部分:4句话,获取用户修改后的信息;调用JavaBean,包括初始化;把执行的结果传递到界面;转向界面。
12、修改BookBean中的代码
增加update方法,代码如下:
// 更新图书信息
public boolean update(){
boolean success = false;
String sql = "update books set bookname=?,author=?,price=?,publisher=? where bookid=?";
try{
createStatement(sql);
stmt.setString(1,bookname);
stmt.setString(2,author);
stmt.setFloat(3,price);
stmt.setString(4,publisher);
stmt.setString(5,bookid);
int n = executeUpdate();
if(n>0)
success = true;
else
success = false;
}catch(Exception e){
success = false;
System.out.println(e.toString());
}finally{
close();
}
return success;
}
13、编写控制器
为了解决乱码,在控制器中获取信息之前,增加如下语句:
request.setCharacterEncoding("gb2312");
代码如下:
package servlet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import bean.*;
import java.util.ArrayList;
public class UpdateBook extends HttpServlet
{
public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
request.setCharacterEncoding("gb2312");
// 第一句话:获取用户选择图书编号
String bookid = request.getParameter("bookid");
String bookname = request.getParameter("bookname");
String price = request.getParameter("price");
String author = request.getParameter("author");
String publisher = request.getParameter("publisher");
float fPrice = 0f;
try{
// 把字符串转换成浮点型变量
fPrice = Float.parseFloat(price);
}catch(Exception e){
}
// 第二句话:调用JavaBean,创建对象、初始化、然后调用方法
BookBean book = new BookBean();
book.setBookid(bookid);
book.setBookname(bookname);
book.setPrice(fPrice);
book.setAuthor(author);
book.setPublisher(publisher);
boolean success = book.update();
String info ;
if(success)
info = "修改成功!";
else
info = "修改失败";
// 第三句话:向页面传递信息,第一个参数是使用的名字,应该和显示时候使用的名字一致,第二个参数传递的值本身
request.setAttribute("info",info);
// 第四句话:转向响应界面
RequestDispatcher rd = request.getRequestDispatcher("success.jsp");
rd.forward(request,response); // 完成跳转
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException
{
doGet(request,response);
}
}
修改配置文件:
<servlet>
<servlet-name>updateBook</servlet-name>
<servlet-class>servlet.UpdateBook</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>updateBook</servlet-name>
<url-pattern>/updateBook</url-pattern>
</servlet-mapping>
发表评论
-
Java Web快速入门——第十讲
2009-12-25 15:30 10391、MVC模式分析 对 ... -
Java Web快速入门——第9讲
2009-12-25 15:30 13021、在JSP中如何存储信息 ... -
Java Web快速入门——第7讲
2009-12-25 15:28 10251、共享连接数据库的代 ... -
Java Web快速入门——第6讲
2009-12-25 15:28 10561、分析登录功能 界面:登录界面index1.jsp; ... -
Java Web快速入门——第5讲
2009-12-25 15:27 11921、JavaBean JavaBean是使用Java语 ... -
Java Web快速入门——第4讲
2009-12-25 15:26 13681、对Servlet的理解 Servlet是一种Ja ... -
Java Web快速入门——第3讲
2009-12-25 15:25 18071、include指令 作用:把多个文件中需要共享的代码 ... -
Java Web快速入门——第2讲
2009-12-25 15:22 17341、form 只要是涉及向服务器提交信息,都应该使用for ... -
Java Web快速入门——第一讲
2009-12-25 15:19 2309第一讲(参考《Java Web程序设计基础教程》第1章)1 J ...
相关推荐
**第八讲:MVC设计模式与JSP** MVC(Model-View-Controller)设计模式常用于Web应用开发。本讲将讨论如何在JSP中实现MVC,以及Struts、Spring MVC等框架的应用。 **第九讲:JSP与Servlet协同工作** 虽然JSP主要用于...
第8章 浅尝辄止 ——初识Struts2 8.1 本章学习任务 8.1.1 本章知识体系 8.1.2 实例开发任务. 8.2 Struts2概述 8.2.1 理解MVC原理 8.2.2 Struts2框架的产生 8.2.3 Struts2的结构体系 8.3 Struts2入门 8.3.1 Struts2的...
* 第8课:实体查询(JPQL和SQL查询) + Query查询对象API + JPQL查询语言 + SQL语句查询 Java Web高级开发技术 frameworks与开源技术 * 介绍了Java EE开发中的各种分布式与业务核心技术 * 涵盖了Java Web的各种...
7.4 Session 7.5 Session的典型案例 7.6 Session的持久化管理 7.7 思考与实践 第8章 JSP 8.1 JSP入门 8.2 JSP基本语法 8.3 JSP指令 8.4 out对象 8.5 pageContext对象...
《Java Web编程宝典——十年典藏版》是一本深入探讨Java Web开发的权威书籍,其源码提供了丰富的实例,帮助读者深入理解并实践相关技术。这本书覆盖了从基础到高级的Java Web开发各个方面,包括Servlet、JSP、Java...
第8章?使用表达式语言(EL) 165 ?视频讲解:72分钟8.1 EL概述 165 8.1.1 EL的基本语法 165 8.1.2 EL的特点 166 8.2 与低版本的环境兼容——禁用EL 166 8.2.1 使用斜杠符号“\” 166 8.2.2 使用page指令 166 ...
《Go Web编程实战派从入门到精通》是一本专注于Go语言在Web开发领域的专著,其开源的随书源码库名为"Go语言-Web-goWebActualCombat",压缩包内的主要内容是goWebActualCombat-master目录,这代表了一个完整的Go语言...
### 云应用开发 ——Google App Engine & Google Web Toolkit入门指南 #### 第1章 应该了解下 ##### 1.1 云基本知识 云计算是一种通过互联网提供按需计算资源和服务的方式,包括网络、服务器、存储、应用程序和...
### JAVA入门教程21天学通JAVA2第三版——关键知识点解析 #### 一、JAVA入门书籍推荐 - **《Java语言》**:适合初学者,全面覆盖Java基础语法及面向对象的基本概念。 - **《Thinking in Java》**:虽然内容深入且...
还会介绍如何编写并运行第一个Java程序——经典的"Hello, World!"示例。 3. **JAVA基本程序实践**:在理论知识的基础上,这部分将深入到实际编程中,涵盖类和对象的概念,这是面向对象编程的基础。学习者会了解如何...
【Java基础培训教程】是为初学者设计的一套详尽的学习资源,涵盖了从入门到进阶的各个环节。在这个教程中,我们将深入理解Java语言的基本概念,掌握编程技巧,并熟悉常用的开发工具,如Eclipse、NetBeans和Struts。...
在“Java Web开发教程——入门与提高篇(JSP+Servlet)”这个教程中,你将系统学习这些知识点,逐步掌握如何使用Java进行Web开发,建立起从零到一的实战能力。无论是对HTTP协议的理解,还是对Java Web组件的运用,都...
这份资料集主要涵盖Java基础知识、初学者入门指南以及常见的Java面试题,旨在帮助学习者系统地理解和掌握Java的核心概念。 首先,Java基础知识是理解任何Java程序的基础。这包括: 1. **Java环境搭建**:学习如何...
本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,...
本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP 2.0,重点介绍Java在展示层的两项重要技术:Java Servlet与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,...
**:介绍第一个Java程序——打印“Hello, World!”,这是所有编程语言的入门起点,用于熟悉基本的代码结构和编译执行流程。 4. **语法基础**: - **数据类型**:包括基本数据类型(如整型、浮点型、字符型和布尔型...
本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP2.0,重点介绍JAVA在展示层的两项重要技术:Java Servlet 与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,...
本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP2.0,重点介绍JAVA在展示层的两项重要技术:Java Servlet 与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,...
本书图文并茂,以丰富的实例为引导,全面介绍了主流的Java Web开发技术——JSP2.0,重点介绍JAVA在展示层的两项重要技术:Java Servlet 与JavaServer Pages。它们是最重要的Java核心技术。对这两项技术的深入了解,...