动态生成页面(从数据库中动态取出数据信息生成页面)

做课程设计的时候  做的有点烦了  所以就简单的写了点 以下就是将添加到购物车的商品动态的显示到前台页面的代码

首先是我的head.jsp这里面的“我的目录“使用的不是直接链接而是一个servlet名称叫做”selectUserCart“

我的里面使用的user、books、userAccout类都是基本的记录了基本信息的类为其实现setXxx()和getXxx()方法

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<link rel="stylesheet" type="text/css" href="style.css" />

  </head>

  <body >

  <div id="wrap" >
  <%

  		 if(session.getAttribute("username") == null) {

  %>
  <br/>你还没有登录请<a href="login.jsp">登陆</a>/<a href="register.jsp">注册</a>以查看或购买
  <%
  			}else{

  		%>
  		<br/>您好!<%=session.getAttribute("username") %>
  	<%
  		}
   %>
      <div class="header">

      <!-- <br/>你还没有登录请<a href="login.jsp">登陆</a>/<a href="register.jsp">注册</a>以查看或购买 -->
    <div class="logo"><a href="index.htm"><img src="images/logo.gif" alt="" title="" border="0" /></a></div>
    <div id="menu">
      <ul>
        <li class="selected"><a href="index.jsp">主页</a></li>
        <li><a href="about.jsp">关于我们</a></li>
        <li><a href="category">图书</a></li>
        <li><a href="specials.jsp">特别推荐</a></li>
        <li><a href="selectUserCart">我的目录</a></li>
        <li><a href="register.jsp">注册</a></li>
        <li><a href="contact.jsp">购买</a></li>

      </ul>
    </div>
  </div>
  </div>
  </body>
</html>
然后是我使用到的两个类:
搜索我的购物车的工具类:myCartUtil.java
<pre name="code" class="java">package myCart;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import bookConnUtil.DBUtil;
import bookConnUtil.books;

public class myCartUtil {
	public static ArrayList<mycart> list = new ArrayList<mycart>();
	public static ArrayList<books> booklist = new ArrayList<books>();
	public static String msg;
	public static int countbook = 0;
	//public static  mycart[] cart = new mycart[10];
	public static int count = 0;
	public static boolean insertIntoMyCart(String username,String bookname,String pianduanName) throws SQLException{

		String cartInsert = "insert into userAccount valus(?,?,?)";
		boolean flag = false;
		Connection conn=null;
		PreparedStatement stmt=null;
		try{

			conn = DBUtil.getConnection(DBUtil.CONNECTION_SQL);

			stmt = conn.prepareStatement(cartInsert);
			stmt.setString(1, username);
			stmt.setString(2, bookname);
			stmt.setString(3, pianduanName);
			int count = stmt.executeUpdate();
			if(count>0){
				flag=true;
			}else{
				flag=false;
			}

		}catch(Exception e){
			System.out.println("真心对不住,您的程序出错了");
			e.printStackTrace();

		}finally{
			conn.close();
			stmt.close();

		}
		return flag;

	}
	public static boolean selectUserCart(String userName) throws SQLException{
		boolean flag = false;
		String cartSelect = "select username,bookname,pianduanName,imagePath,price from userAccount where username =?";
		Connection conn=null;
		ResultSet rs=null;
		PreparedStatement stmt=null;
		try{

			conn = DBUtil.getConnection(DBUtil.CONNECTION_SQL);

			stmt = conn.prepareStatement(cartSelect);
			stmt.setString(1, userName);
			rs = stmt.executeQuery();

			while(rs.next()){

					mycart cart = new mycart();
					cart.setUserName(rs.getString(1));
					cart.setBookName(rs.getString(2));
					cart.setPianduanName(rs.getString(3));
					cart.setImagePath(rs.getString(4));
					cart.setPrice(rs.getInt(5));
					list.add(cart);
					count++;

				}
			System.out.println("++++++++++++++++"+count+"+++++++++++++");
			if(count==0){
				msg = "null";
			}else{
				msg = "full";
			}
			flag = true;

		}catch(Exception e){
			System.out.println("真心对不起,你的程序出错了");
			e.printStackTrace();

		}finally{
			conn.close();
			stmt.close();

		}

		return flag ;
	}
	public static boolean selectAllBooks() throws SQLException{
		boolean flag = false;
		String cartSelect = "select bookId,bookName,pianduanName,imagesPath,price from books";
		Connection conn=null;
		ResultSet rs=null;
		PreparedStatement stmt=null;
		try{

			conn = DBUtil.getConnection(DBUtil.CONNECTION_SQL);

			stmt = conn.prepareStatement(cartSelect);

			rs = stmt.executeQuery();

			while(rs.next()){

					books book = new books();
					book.setBookID(rs.getString(1));
					book.setBookName(rs.getString(2));
					book.setPianduanName(rs.getString(3));
					book.setImagePath(rs.getString(4));
					book.setPrice(rs.getInt(5));
					booklist.add(book);
<span style="white-space:pre">					</span>//我没怎么好好做所以就用这个标记的 想要做的更好点请自行实现
					countbook++;

				}
			System.out.println("++++++++++++++++"+count+"+++++++++++++");
			if(count==0){
				msg = "null";
			}else{
				msg = "full";
			}
			flag = true;

		}catch(Exception e){
			System.out.println("真心对不起,你的程序出错了");
			e.printStackTrace();

		}finally{
			conn.close();
			stmt.close();

		}

		return flag ;
	}
}

下面是实现数据库连接类:


<pre name="code" class="java">package bookConnUtil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil {
	public static final int CONNECTION_MYSQL=2;
	public static final int CONNECTION_SQL=1;
	public static final int CONNECTION_ODBC=0;
	public DBUtil() {	}
	public static Connection getConnection(int connection_type)throws Exception
	{
		switch (connection_type)
		{
			case CONNECTION_ODBC:
				return getConnectionODBC();
			case CONNECTION_SQL:
				return getConnectionSQL();
			case CONNECTION_MYSQL:
				return getConnectionMYSQL();
		}
		return null;
	}

	/**
	 * ??????????
	 */
	private static Connection getConnectionODBC()throws Exception
	{
		Connection conn=null;
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
			System.out.println("abc");
			conn=DriverManager.getConnection("jdbc:odbc:mybook","sa","123");
			System.out.println("连接成功");

		}
		catch(Exception e)
		{
			e.printStackTrace();
			throw e;
		}
		return conn;
	}
	private static Connection getConnectionSQL() throws Exception
	{
		Connection conn=null;
		String connectionUrl = "jdbc:sqlserver://localhost:1433;databaseName=user;";
		try
		{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

			conn=DriverManager.getConnection(connectionUrl,"sa","123");
			System.out.println("连接成功");

		}
		catch(Exception e)
		{
			e.printStackTrace();
			throw e;
		}
		return conn;
	}
	private static Connection getConnectionMYSQL() throws Exception
	{
		String connectionUrl = "jdbc:mysql://localhost:3306/user";
		String username = "root";
		String password = "mysql";
		Connection conn=null;

		try
		{
			Class.forName("com.mysql.jdbc.Driver"); 

			conn=DriverManager.getConnection(connectionUrl, username,password);
			System.out.println("连接成功");

		}
		catch(Exception e)
		{
			e.printStackTrace();
			throw e;
		}
		return conn;

	}
	public static void close(Connection conn) throws Exception
	{
		if(conn!=null)
		{
			try
			{
				conn.close();
			}
			catch(SQLException e)
			{
				e.printStackTrace();
				throw e;
			}
		}
	}

}

下面是实现用户购物车搜索类:


<pre name="code" class="java">package myCart;

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;
import javax.servlet.http.HttpSession;

import bookConnUtil.bookDAO;

public class selectUserCart extends HttpServlet {

	/**
	 *
	 */
	private static final long serialVersionUID = 1L;
	public int count = myCartUtil.count;

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		HttpSession session=req.getSession();
		String username =(String) session.getAttribute("username");

		try {
			//System.out.println("还没执行到查询过程这里");
			boolean flag=myCartUtil.selectUserCart(username);
			if(flag==true){
				/*for(mycart message:myCartUtil.list){
					for(int i=0;i<3;i++){
						String A = message.getUserName();
					}
				}*/
				//session.setAttribute("count",countNum);
				if(myCartUtil.msg.equals("null")){
					session.setAttribute("null", myCartUtil.msg);
				}else{
					session.setAttribute("full", myCartUtil.msg);
				}
				req.getRequestDispatcher("selectMyAcccount.jsp").forward(req, resp);

			}else{
				req.getRequestDispatcher("error.html").forward(req, resp);

			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}

我的目录实现代码:


<pre name="code" class="html"><%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <base href="<%=basePath%>">

     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>Book Store</title>
     <link rel="stylesheet" type="text/css" href="style.css" />

  </head>

  <body onload="selectUserCart">
  <jsp:include  page="head.jsp"/> 

    <div id="wrap">
    <div class="center_content">
    <div class="left_content">
          <%
       if(session.getAttribute("username") == null) {
        %>
         <script type="text/javascript" language="javascript">
            alert("您还没有登录,请登录...");
            window.document.location.href="login.jsp";
        </script>
        <%
             }
          %>
      <div class="title"><span class="title_icon"><img src="images/bullet1.gif" alt="" title="" /></span>My account</div>
      <div class="feat_prod_box_details">
        <p class="details"> 我还没有什么时间进行修改,所以使用的是以前的版本这样的话造成的不便请您谅解。所有权为作者所有我还没有什么时间进行修改,所以使用的是以前的版本这样的话造成的不便请您谅解。所有权为作者所有我还没有什么时间进行修改,所以使用的是以前的版本这样的话造成的不便请您谅解。所有权为作者所有我还没有什么时间进行修改,所以使用的是以前的版本这样的话造成的不便请您谅解。所有权为作者所有 </p>
        <div class="contact_form">
          <div class="form_subtitle">登陆 以查看清单</div>
          <form name="register" method="post" action="UserDAO">
            <div class="form_row">
              <label class="contact"><strong>用户名:</strong></label>
              <input type="text" class="contact_input" name="userName" />
            </div>
            <div class="form_row">
              <label class="contact"><strong>密  码:</strong></label>
              <input type="password" class="con tact_input" name="password" />
            </div>
            <div class="form_row">
              <div class="terms">
                <input type="checkbox" name="terms" />
                	记住密码 </div>
            </div>
            <div class="form_row">
              <input type="submit" class="register" value="登陆" />
            </div>
          </form>
        </div>
        <div class="contact_form">
          <div class="form_subtitle">更新书籍信息</div>
          <form name="updateBookMsg" method="post" action="updateBookMsg">
            <div class="form_row">
              <label class="contact"><strong>图  书ID:</strong></label>
              <input type="text" class="contact_input" name="bookId" />
            </div>
            <div class="form_row">
              <label class="contact"><strong>图 书 名:</strong></label>
              <input type="text" class="contact_input" name="bookName" />
            </div>
            <div class="form_row">
              <label class="contact"><strong>图书简介:</strong></label>
              <input type="text" class="contact_input" name="pianduanName" />
            </div>

            <div class="form_row">
              <input type="submit" class="register" value="提交" />
            </div>
          </form>
        </div>

      </div>
      <div class="clear"></div>
    </div>
    <jsp:include  page="broadside.jsp"/>
    </div>
    </div>
  </body>
</html>


版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-25 10:43:14

动态生成页面(从数据库中动态取出数据信息生成页面)的相关文章

关于各个数据库中限制取出数据条数的简餐操作

今天去面试之后,面试的小哥给了个比较简单的问题,但是自己没有答上来. 问题: SQL SERVER中如何限制取出数据的条数: 1. Oracle中的操作是:rownumber关键字限制: SELECT * FROM tbl_name ROWNUMBER num 2. Mysql中的限制条数是: SELECT * FROM tbl_name LIMIT num; 3. SQL SERVER 中操作是: SELECT * FROM tbl_name TOP num;

zTree 从数据库中动态加载树形菜单

这几天做动态菜单用到了这个插件,目前用的很广泛的一个开源框架,最新发布的QUI框架就是用这个插件开发的菜单部分,因此还是很值得深入研究和学习,通过使用感觉功能很丰富,好多函数不用自己开发和编写,官网上有很详尽的API可以参考,用着算顺手但学习使用的过程中也遇到了一些困难,听过反复测试和查资料都理解了,但也在思考一个问题,怎么样才能使得最快的时间从接触一个新东西到灵活掌握的程度? 这个不仅仅是一个树形结构的菜单,每个节点左边可以有一个复选框,看了看也挺简单的,只需要在setting里面配置一个ch

DOM中动态创建元素与jQuery中动态创建元素

DOM中动态创建元素与jQuery中动态创建元素 DOM中动态创建元素: 1. document.write("标签的代码")    缺点:页面中原有的元素会被覆盖掉 2. innerHTML 3. document.createElement("标签的名称") jQuery中动态创建元素: 1. $("标签的代码") 2. 对象.html("标签的代码") 原文地址:https://www.cnblogs.com/david

清空SQL Server数据库中所有表数据的方法

其实删除数据库中数据的方法并不复杂,为什么我还要多此一举呢,一是我这里介绍的是删除数据库的所有数据,因为数据之间可能形成相互约束关系,删除操作可能陷入死循环,二是这里使用了微软未正式公开的sp_MSForEachTable存储过程. 也许很多读者朋友都经历过这样的事情:要在开发数据库基础上清理一个空库,但由于对数据库结构缺乏整体了解,在删除一个表的记录时,删除不了,因为可能有外键约束,一个常见的数据库结构是一个主表,一个子表,这种情况下一般都得先删除子表记录,再删除主表记录. 说道删除数据记录,

收集Oracle数据库中的SQL基线信息(一)基础信息收集

Oracle数据库中的SQL基线信息,当数据库出现性能问题时,在业务无法提供相应业务信息时,通过对比SQL基线信息来查找SQL的变化. 查找数据库一天内运行次数大于5000次的sqlid select sql_id,sum(EXECUTIONS_DELTA)from dba_hist_sqlstat a,dba_hist_snapshot b where a.snap_id=b.snap_id and a.INSTANCE_NUMBER=b.INSTANCE_NUMBER and to_char

一起数据库中过期用户数据堆积问题的排查过程

[文章摘要] 对于使用数据库来存放大量用户的软件来说,过期数据的清理机制需要慎重设计.如果设计不当,则会导致数据的误删除或清理不完全. 本文对某数据清理模块因参数配置不当而导致的过期用户数据堆积问题进行了详细的分析,为相关软件问题的分析及解决提供了有益的参考. 一.问题描述 在某软件系统中,为了让不同种类的用户享受对应的服务,引入了一个信箱服务等级的概念,即不同服务等级的用户具有不同的权限."一分钱,一分货",对于运营商来说,高服务等级的用户收取高的资费,提供高质量的服务. 为了维护不

VBA从字符串中取出数据信息的函数

作者:iamlaosong 一个简单的函数,从包含有数字信息的字符串中取出这个数据,利用VAL函数将字符串转换为数值,该函数或略数字字符串后面的字母和汉字信息,所以,只要把数字前面的字母和汉字信息去掉就行了. '函数,从字符串"ABC123456.78DEF"中取出数据 Function mydata(mystring As String) As Double Dim i, k As Integer i = 1 k = Len(mystring) Do Until Val(Mid(my

数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑

我现在批量往数据库里导正式数据(sql insert),但是数据中有三列分别是岗位,办事处,大区,给的数据中只给了岗位的值,办事处的值可以通过岗位值在岗位表查到,大区的值可以通过办事处的值在办事处表里查到.现在我已经把其他数据都导进去了,只剩办事处和大区没有值,我该如何批量更新这两列的值啊 导入的数据的表: 岗位表: 办事处表: 本人sql不是很好,希望sql大神能给出来解惑一下,拜谢~ 数据库中批量导入数据,有两列的值需要从其他表中查出来,我现在没有思路,求解惑 >> mysql 这个答案描

Mysql获取数据库中存在的字典信息

有时候自己写工具需要从远程数据库中获得各种表信息,这样首先就要取得数据字典 列一下mysql的获取方式 use information_schema; select schema_name from schemata; select table_name from tables where table_schema='information_schema' order by table_name; 1.首先use一下information_schema 2.从schemata表中获取出可用的sc