JSP前后台数据交互

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

运行结果如下图

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值