📄 bookservlet.java
字号:
package sample;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.DataSource;
import ebookshop.bean.BookBean;
public class BookServlet extends HttpServlet
{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException{
try {
Context initCtx= new InitialContext(); //1.生成上下文
Context envCtx = (Context) initCtx.lookup("java:comp/env"); //2.查询
DataSource ds = (DataSource)envCtx.lookup("jdbc/mysql"); // jndi name //此名为任意的,但是必须和绑定的jndi name一样.
Connection con = ds.getConnection(); // DataSource(数据源)call getConnection()方法返回一个连接的对象.
//3. create statement
Statement stmt = con.createStatement();
String query = "SELECT * FROM book";
//4. get Resultset
ResultSet rs = stmt.executeQuery(query);
//5. call method getResultSet to get an arraylist
ArrayList list = getResultSet(rs); // call business(成员) method
rs.close();
stmt.close();
con.close();
//6. put the Arraylist in request and relate it with a name
req.setAttribute("users", list); // users -> key, list-> value
//7. forward the request to anotherservlet
//getServletContext().getRequestDispatcher("/dbdisplayservlet").forward(req, res);
ServletContext sc=getServletContext();
RequestDispatcher rsd=sc.getRequestDispatcher("/bookDisplayServlet");
rsd.forward(req, res);
}catch(Exception e){e.printStackTrace();}
}
// extract data from resultset of database, and save them in an Arraylist
private ArrayList getResultSet(ResultSet rs) throws SQLException {
ArrayList users = new ArrayList();
while(rs.next()) {
// use the Javabean Student to save one row
BookBean bk=new BookBean();
// from database
bk.setBookName(rs.getString("bookName"));
bk.setPublisher(rs.getString("publisher"));
bk.setPrice(new Float(rs.getFloat("price")));
bk.setDescription(rs.getString("description"));
System.out.println("bid: " + rs.getInt("bid"));
System.out.println("bookName: " + rs.getString("bookName"));
System.out.println("publisher: " + rs.getString("publisher"));
System.out.println("price: " + rs.getFloat("price"));
System.out.println("memberPrice: " + rs.getFloat("memberPrice"));
System.out.println("description: " + rs.getString("description"));
users.add(bk); // add javabean to ArrayList
System.out.println();
}
return users; // return arraylist
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -