数据库中的记录通过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>

你可能感兴趣的:(数据库,jsp,搜索)