数据库中的记录通过servlet回显到jsp页面中(连接数据库或者查询參照:对数据进行增删改查)
我们常常会用到通过图书的名称来查询图书那么这种话我们也就会使用到从数据库中搜索出数据而且载入到自己的Jsp页面中
这种话我们须要将从数据库中获取到的数据放进响应中然后通过%=request.getAttribute("bookId1") %获取对应的值当然仅仅有servlet和jsp页面是不够的还须要的是将你的servlet配置到你的wed.xml中。这样你的servlet才干够使用。
下面为个人浅浅的想法:事实上我个人认为动态的载入网页更加的简单比如:你想要在你的站点每天公布一张站点动态图片那么你须要做的就是最简单的方式将你的图片命名成之前的名称用以替换然后单独的一个文件存放文本文件 再将文本文件载入进来另一种更加安全的方法就是你须要将你的文件放进数据库中然后在每次訪问页面时候通过servlet载入进来(个人认为这样的方式尽管安全可是载入的比較慢一般人都不愿去等待)另一种就是我记得老师和我说过有一种专用的站点后台管理的假设创建自己的站点能够考录是用那个。
中间使用的book是定义的一个book类存储的是book的基本信息为其设置setter和getter訪问器这种话符合封装原则
package bookConnUtil;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class selectBook extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
String bookId=req.getParameter("bookId");
try {
//本句话调用的是等会数据库进行增删改查里的一个static方法可參考我写的:http://blog.csdn.net/bluezhangfun/article/details/46617455
boolean flag=bookDAO.bookSelete(bookId);
//进行调试的语句
//System.out.println("bookSelect方法正常!!
!。。!!
。!!
。!
");
if(flag==true){
//book.getBookID();在以下类中
String bookId1=bookDAO.book.getBookID();
String bookName=bookDAO.book.getBookName();
String pianduanName=bookDAO.book.getPianduanName();
//System.out.println(bookId1+"+++++++++++++++++++++++++++");
//将从数据库中查询到的语句放入到response中
req.setAttribute("bookId1", bookId1);
req.setAttribute("bookName", bookName);
req.setAttribute("pianduanName",pianduanName);
//进行页面跳转
req.getRequestDispatcher("selectBook.jsp").forward(req, resp);
}else{
req.getRequestDispatcher("error.html").forward(req, resp);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/***************************************************************************************************************************
package bookConnUtil;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//使用rs结果集的时候由于查询的是一条语句 假设是使用rs.next就是没有后继所以就不能运行while循环将会出现错误
//假设是查询的多条语句结果是多条的话那么就能用while循环这样就能实现反复的输出
//使用prepareStatement时候必须先要对当中的?号进行赋值不然会出现错误的
public class bookDAO{
static books book = new books();
public static books getBook(){
return book;
}
public static boolean bookSelete(String bookId) throws SQLException{
String updateWithUid ="select bookId,bookName,pianduanName from books where bookId=?";
//String updateWithUname ="update users set UID=?
,password=?
,email=?,utype=?where Uname=?";
boolean flag =true;
Connection conn=null;
PreparedStatement stmt=null;
ResultSet rs=null;
try{
conn=DBUtil.getConnection(DBUtil.CONNECTION_SQL);
stmt=conn.prepareStatement(updateWithUid);
stmt.setString(1,bookId);
System.out.println("bookId是"+bookId+"!!!!!!!!!!!!");
rs=stmt.executeQuery();
if(rs.next()==false){flag=false; return flag; }
System.out.println("没有进入到循环中+++++++++++++++++++++");
String bookId1 = rs.getString(1);
System.out.println(bookId+"++++++++++++++++++");
book.setBookID(bookId1);
String bookName = rs.getString(2);
book.setBookName(bookName);
System.out.println(bookName+"++++++++++++++++++");
String pianduanName = rs.getString(3);
book.setPianduanName(pianduanName);
return flag;
}catch(Exception e){
e.printStackTrace();
}finally{
conn.close();
stmt.close();
}
return false ;
}
}/
/**********************************************************************************************************************************************/
以下的代码是对response中的数据提取并显示在页面中我仅仅做了简单的处理
假设嫌自己的页面过于简单或者是运行的功能过于单一那么在jsp或者是你的servlet中进行控制
<div class="form_row">
<label class="contact"><strong>书籍ID:</strong></label>
<input type="text" class="contact_input" name="bookId" value='<%=request.getAttribute("bookId1") %>'/>
</div>
<div class="form_row">
<label class="contact"><strong>书籍名称:</strong></label>
<input type="text" class="contact_input" name="bookName" value='<%=request.getAttribute("bookName") %>'/>
</div>
<div class="form_row">
<label class="contact"><strong>片段信息:</strong></label>
<input type="text" class="contact_input" name="pianduanName" value='<%=request.getAttribute("pianduanName") %>' />
</div>
数据库中的记录通过servlet回显到jsp页面中(连接数据库或者查询參照:对数据进行增删改查)的更多相关文章
- MVC模式:实现数据库中数据的增删改查功能
*.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...
- dbutils中实现数据的增删改查的方法,反射常用的方法,绝对路径的写法(杂记)
jsp的三个指令为:page,include,taglib... 建立一个jsp文件,建立起绝对路径,使用时,其他jsp文件导入即可 导入方法:<%@ include file="/c ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- Delphi - cxGrid连接Oracle数据库 实现数据的增删改查
cxGrid连接Oracle数据库 实现数据的增删改查 cxGrid连接Oracle数据库 1:通过OraSession连接数据库.OraDataSet实现OraSession和OraDataSour ...
- SpringMVC框架下数据的增删改查,数据类型转换,数据格式化,数据校验,错误输入的消息回显
在eclipse中javaEE环境下: 这儿并没有连接数据库,而是将数据存放在map集合中: 将各种架包导入lib下... web.xml文件配置为 <?xml version="1. ...
- mysql基础之mariadb对表中数据的增删改查
复习: 查看表:show tables; 创建表:create table 表名(字符类型); 删除表:drop table 表名; 对表的结构进行增删改查: 查看表结构:desc 表名; 修改表-添 ...
- java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查
一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...
- linux中安装eclipse,安装好之后不能直接建servlet,不能直接在jsp页面中run on server.权限在作怪,我猜的,
最近按照网上的教程安装了eclipse,开始很开心,但是慢慢的用的时候发现,不能在jsp页面run on server ,不能创建servlet,我也是醉了,我当时就猜测是权限问题,很多软件安装之后都 ...
- mysql--对行(表中数据)的增删改查
一.插入数据(增加)insert 1.插入数据(顺序插入) 语法一: INSERT INTO 表名(字段1,字段2,字段3…字段n) VALUES(值1,值2,值3…值n); #指定字段来插入数据,插 ...
随机推荐
- 基本SQL语句练习(order by,group by,having)
一.GROUP BY 和ORDER BY 1.使用Order by 进行排序,默认升序ASC,降序则使用DESC;(还可以这样:order by 1表示按第一列排序:order by 2 desc表示 ...
- [亲测有效] - Mac下屏蔽优酷广告最简单的方法
这里不和圣母婊争论该不该屏蔽广告,仅给出可行方法. Windows下的Adsafe,万能的去广告神器!可惜Mac下没有这款软件,Adblock之流在国内基本是个玩具,但是我们可以通过修改HOST文件达 ...
- handler机制和异步更新UI页面
Android 提供了Handler和Looper来满足线程之间的通行,Handler是先进先出原则,Looper类用来管理特定线程内对象之间的消息互换,也可以使用Runnable来完成页面异步更新 ...
- [c#]asp.net开发微信公众平台(3)微信消息封装及反射赋值
上一篇已经搭建好整体框架,实现了入口的验证, 验证通过后就交给LookMsgType方法处理,LookMsgType方法主要是对微信发来的不同的消息进行分解,不同的类型交给业务逻辑层不同的方法处理 ...
- 轻松完成WAP手机网站搭建
用PHPCMS最新发布的V9搭建了PHPCMS研究中心网站(http://phpcms.org.cn)完成后,有用户提出手机访问的问题,于是着手搭建WAP无线站(wap.phpcms.org.cn). ...
- SQL Server 2005无法远程连接的解决方法
以前一直连接本地的数据库,连接SQL Server 2005是小菜的... 做项目也是老师搭好了服务器端,打上IP去访问就行...也不用考虑太多. 今天自己在公司搭SQL Server 2005服务器 ...
- mysql数据库在Navicat Premium连接的时候出现1862错误
navicat连接打开时报1862的错误, 很就没有连接mysql看看了,今天连接的时候发现本机的mysql链接不上了,在cmd中执行动作的时候也会叫你去set password,做设置密码的动作时会 ...
- python 解决递归调用栈溢出
递归函数 2578次阅读 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact ...
- 后台获取HTMLTABLE的innerHtml
c#后台动态创建了htmltable,取其innerHtml时,会报错,因为,htmltable控件不支持该属性,要获取其innerHtml使用如下方法 HtmlTable tb=new Htm ...
- Responder一点也不神秘————iOS用户响应者链完全剖析
一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Moti ...