您的位置:首页 > Web前端 > JavaScript

JSP前后台数据交互

2017-10-24 23:17 246 查看


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.*"%>


运行结果如下图



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: