1.一般方法:在頁面加載時載入數據
-
首先,新建一個包,在包內創建一個類,類實現接口Servlet-javax.servlet
-
然后,在web.xml文件里配置如下
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>adminsystem1</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> //定義一個名稱 <servlet-name>servlet-router</servlet-name> //第一步的類 <servlet-class>com.csit.adminsystem1.controllers.RouterController</servlet-class> </servlet> //輸入后綴為.html則都要調用servlet-router,即調用RouterController類 <servlet-mapping> <servlet-name>servlet-router</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> </web-app>
如果不存在web.xml文件,則右鍵項目名稱—>Java EE Tools—>Generate Deployment descriptor stub
- 新建兩個類,比如分別為ProductDao和ProductService,在ProductDao里提供信息處理的數據操作,
在ProductService里提供信息處理服務,下面給出樣例代碼:
ProuductDao.java
package com.csit.adminsystem1.daos;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import com.csit.adminsystem1.domains.TProduct;
import com.csit.adminsystem1.utils.JdbcUtil;
/**
* 提供商品信息處理的數據操作(dao)
*
* @author Administrator
*
*/
public class ProductDao {
//JdbcUtil是自己定義的一個類,里面定義了靜態的conn用於連接數據庫
Connection conn = JdbcUtil.conn;
public List<TProduct> findAll() throws SQLException{
String sql = "select * from t_product";
PreparedStatement ps = conn.prepareStatement(sql);
//將執行SQL語句后結果存於rs里
ResultSet rs = ps.executeQuery();
List<TProduct> products = new ArrayList<TProduct>();
while(rs.next()) {
TProduct product = new TProduct();
product.setProductName(rs.getString("product_name"));
product.setProductId(rs.getInt("product_id"));
product.setProductPrice(rs.getDouble("product_price"));
products.add(product);
}
return products;
}
}
ProductService.java
package com.csit.adminsystem1.services;
import java.sql.SQLException;
import java.util.List;
import com.csit.adminsystem1.daos.ProductDao;
import com.csit.adminsystem1.domains.TProduct;
/**
* 提供商品信息處理服務(service)
*
* @author Administrator
*
*/
public class ProductService {
ProductDao po = new ProductDao();
//這里只是執行findAll方法,有涉及到信息處理的可以自行添加對應的處理方法
public List<TProduct> findAll() throws SQLException{
return po.findAll();
}
}
-
下面實現RouterController的service方法
ProductService ps =new ProductService(); String content=""; public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException { // TODO Auto-generated method stub //將返回的數據存在products里 try { req.setAttribute("products", ps.findAll()); } catch (SQLException e) { e.printStackTrace(); } //index.jsp為數據要顯示的頁面 req.getRequestDispatcher("index.jsp").forward(req, res); }
-
在index.jsp中編寫如下代碼
<% //將products里的數據強制轉換為List<TProduct>類型,TProduct是自己定義的一個類,用於存放從數據庫中查詢的數據 List<TProduct> products = (List<TProduct>)(request.getAttribute("products")); for(TProduct product:products){ out.println("<li><input type='checkbox' />" + "<p>"+product.getProductName()+" "+product.getProductPrice()+"</p>" + "</li>"); } %>
注意在開頭添加引用路徑,根據自己的路徑來配置
<%@page import="com.csit.adminsystem1.domains.*,java.util.*"%>
運行結果如下圖