Java课程设计之基于JSP的校园二手交易平台 校园二手电商网站

407 阅读5分钟

基于JSP的校园二手交易平台

一、系统截图

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

二、开发环境以及技术架构

系统架构:本系统的开发是使用Java作为主要的编程语言编程开发,以主流的数据库MySQL存储数据,后台以MVC的设计模式为主要的技术支撑配合JSP,CSS作为页面显示Java,JavaScript完成页面的逻辑交互,同时引入编辑器插件UEditor,开发出一个简单实用、功能齐全的校园二手交易系统。

开发环境: JDK7+eclipse+tomcat7+mysql5.5

三、系统功能

1用户身份

用户注册 用户通过输入个人的身份信息以及登录信息完成注册。 用户登录 用户通过输入登陆账号以及密码和验证码完成登录。 校园新闻 查看管理员发布的校园时讯,支持标题、关键字搜索。 求购信息 查看其他用户发布的求购商品信息,支持按类别、商品名称等关键信息搜索。 二手商品 查看其他用户发布的二手物品,支持按类别、商品名称等关键信息搜索,登陆后可以购买,以及商品的评论。 在线留言 对系统管理员进行在线留言,等待管理员的回复。 个人信息管理 修改个人的基本资料信息。 二手商品管理 发布自己的二手商品信息,管理发布的二手物品。 购买记录管理 查看自己购买的二手商品。 订单信息管理 查看自己购买的二手物品信息的订单状态。 求购信息管理 发布自己的二手物品的求购信息。 收藏信息管理 查看自己二手物品的收藏记录。

2管理员身份

系统用户管理 支持修改密码以及管理前台的已经注册的用户信息,支持用户的冻结,删除,修改等功能。 商品类别管理 对于商品的类别信息进行添加,修改,删除等操作。 购买信息管理 对于所有用户的购买信息进行管理,支持按照用户名,商品名称等关键信息分页查询。 订单信息管理 对于所有用户订单信息进行管理,支持按照用户名,商品名称等关键信息分页查询。 校园信息管理 发布校园的新闻时讯,管理已经发布的新闻时讯。 友情链接管理 可以根据校园的政策链接第三访问网站,支持添加,修改,删除等基本操作。 网站公告管理 对于系统的公告信息进行管理。 在线留言管理 对于系统的用户信息进行留言回复。

四、下载链接

点击下载

五、项目目录

在这里插入图片描述 在这里插入图片描述

六、系统实体类

数据库操作类

package dao;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import util.Info;


public class CommDAO
{
	public static String dbname = "";
	public static String dbtype = "";
	
	public static Connection conn = null;
	
	public CommDAO()
	{
		conn = this.getConn();
	}



         //给字段做加减法
	 public void jiajian(String tablename,String colname,String id,String num)
	 {
		 HashMap map = this.getmap(id, tablename);
		 String value = map.get(colname).toString();
		 if(value.equals(""))value="0";
		 int i = Integer.parseInt(value);
		 int j = Integer.parseInt(num);
		 commOper("update "+tablename+" set "+colname+" = "+(i+j)+" where id="+id);
	 }
	
	 //	该方法返回一个table 用于流动图片
	public String DynamicImage(String categoryid,int cut,int width,int height){

		StringBuffer imgStr = new StringBuffer();
		StringBuffer thePics1 = new StringBuffer();
		StringBuffer theLinks1 = new StringBuffer();
		StringBuffer theTexts1 = new StringBuffer();
	
		imgStr.append("<div id=picViwer1  style='background-color: #ffffff' align=center></div><SCRIPT src='js/dynamicImage.js' type=text/javascript></SCRIPT>\n<script language=JavaScript>\n");
		thePics1.append("var thePics1=\n'");
		theLinks1.append("var theLinks1='");
		theTexts1.append("var theTexts1='");
		
		List<HashMap> co = this.select("select * from xinwentongzhi where shouyetupian<>'' and shouyetupian<>'null'  and shouyetupian  like '%.jpg' order by id desc",1,6);
		int i = co.size();
		
		int j = 0; 
		for(HashMap b:co)
		{
			j++; 
		int id = Integer.parseInt(b.get("id").toString()) ;
		String title = Info.subStr(b.get("biaoti").toString(), 21) ;
		
		String url = ""+b.get("shouyetupian");
		
		String purl = "gg_detail.jsp?id="+b.get("id");
		
		if(j!=i){
		thePics1.append(url.replaceAll("\n", "")+"|");
		theLinks1.append(purl+"|");
		theTexts1.append(title+"|");
		}
		if(j==i)
		{
			thePics1.append(url.replaceAll("\n", ""));
			theLinks1.append("gg_detail.jsp?id="+b.get("id"));
			theTexts1.append(title);
		}
		
		}
	   thePics1.append("';");
		
		theLinks1.append("';");
		theTexts1.append("';");
		imgStr.append(thePics1+"\n");
		imgStr.append(theLinks1+"\n");
		imgStr.append(theTexts1+"\n");
		imgStr.append("\n setPic(thePics1,theLinks1,theTexts1,"+width+","+height+",'picViwer1');</script>");
		return imgStr.toString();
	}
	
	 


		public HashMap getmap(String id,String table)
		{
			List<HashMap> list = new ArrayList();
			try {
				Statement st = conn.createStatement();
				//System.out.println("select * from "+table+" where id="+id);
			    ResultSet rs = st.executeQuery("select * from "+table+" where id="+id);
			    ResultSetMetaData rsmd = rs.getMetaData();
	            while(rs.next())
			    {
			    	HashMap map = new HashMap();
			    	int i = rsmd.getColumnCount();
			    	for(int j=1;j<=i;j++)
			    	{
			    		if(!rsmd.getColumnName(j).equals("ID"))
			    		{
			    			String str = rs.getString(j)==null?"": rs.getString(j);
			    			if(str.equals("null"))str = "";
			    			map.put(rsmd.getColumnName(j), str);
			    		}
			    		else
			    			map.put("id", rs.getString(j));
			    	}
			    	list.add(map);
			    }
			    rs.close();
			    st.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return list.get(0);
		}
		
		public HashMap getmaps(String nzd,String zdz,String table)
		{
			List<HashMap> list = new ArrayList();
			try {
				Statement st = conn.createStatement();
				//System.out.println("select * from "+table+" where "+nzd+"='"+zdz+"'");
			    ResultSet rs = st.executeQuery("select * from "+table+" where "+nzd+"='"+zdz+"'");
			    ResultSetMetaData rsmd = rs.getMetaData();
	            while(rs.next())
			    {
			    	HashMap map = new HashMap();
			    	int i = rsmd.getColumnCount();
			    	for(int j=1;j<=i;j++)
			    	{
			    		if(!rsmd.getColumnName(j).equals("ID"))
			    		{
			    			String str = rs.getString(j)==null?"": rs.getString(j);
			    			if(str.equals("null"))str = "";
			    			map.put(rsmd.getColumnName(j), str);
			    		}
			    		else
			    			map.put("id", rs.getString(j));
			    	}
			    	list.add(map);
			    }
			    rs.close();
			    st.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return list.get(0);
		}
		
		
		 
		public String insert(HttpServletRequest request,HttpServletResponse response, String tablename,HashMap extmap,boolean alert,boolean reflush,String tzurl)
		{
			extmap.put("addtime", Info.getDateStr());
			if(request.getParameter("f")!=null){
			HashMap typemap = new HashMap();
			ArrayList<String> collist = new ArrayList();
			String sql = "insert into "+tablename+"(";
			
		 
			Connection conn = this.getConn();
			try {
				Statement st = conn.createStatement();
			    ResultSet rs = st.executeQuery("select * from "+tablename);
			    ResultSetMetaData rsmd = rs.getMetaData();
	            int i = rsmd.getColumnCount();
			    	 
			    	for(int j=1;j<=i;j++)
			    	{
			    	if(rsmd.getColumnName(j).equals("id"))continue;
					if(rsmd.getColumnName(j).equals("ID"))continue;
					if(rsmd.getColumnName(j).equals("iD"))continue;
					if(rsmd.getColumnName(j).equals("Id"))continue;
			    	typemap.put(rsmd.getColumnName(j)+"---", rsmd.getColumnTypeName(j));
			    	collist.add(rsmd.getColumnName(j));
	    	    	sql+=rsmd.getColumnName(j)+",";
			    	}
			    	sql = sql.substring(0,sql.length()-1);
			    
			    sql+=") values(";
			    rs.close();
			    st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			Enumeration enumeration = request.getParameterNames();
			String names = ",";
			while(enumeration.hasMoreElements())
			{
			names += enumeration.nextElement().toString()+",";
			}
			try {
				Statement st = conn.createStatement();
			    for(String str:collist)
			    {
			    	if(names.indexOf(","+str+",")>-1)
			    	{
			    		String[] values = request.getParameterValues(str);
			    		String value="";
			    		for(String vstr:values)
			    		{
			    			if(vstr==null)vstr="";
			    			if(vstr.equals("null"))vstr="";
			    			if(vstr.trim().equals(""))continue;
			    			
			    			if(request.getParameter(vstr)!=null&&!"".equals(request.getParameter(vstr))&&request.getParameter("dk-"+str+"-value")!=null)
			    			{
			    				String dkv = request.getParameter(vstr);
			    				String dknamevalue = request.getParameter("dk-"+str+"-value");
			    				vstr+=" - "+dknamevalue+":"+dkv;
			    			}
			    			
			    			value+=vstr+" ~ ";
			    			
			    			
			    			
			    		}
			    		if(value==null)value="";
		    			if(value.equals("null"))value="";
			    		if(value.length()>0)value=value.substring(0,value.length()-3);
			    		 
			    	    if(typemap.get(str+"---").equals("int"))
			    	    {
			    		sql+=(value.equals("")?-10:value)+",";
			    	    }else{
			    	    sql+="'"+(value.equals("null")?"":value)+"',";
			    	    }
			    	}else{
			    		if(typemap.get(str+"---").equals("int"))
			    	    {
			    		sql+=(extmap.get(str)==null?"":extmap.get(str))+",";
			    	    }else{
			    	    sql+="'"+(extmap.get(str)==null?"":extmap.get(str))+"',";
			    	    }
			    	}
			    }
			    
			    sql=sql.substring(0,sql.length()-1)+")";
			    System.out.println(sql);
			    this.commOper(sql);
			  
			    st.close();
			     
			} catch (SQLException e) {
				e.printStackTrace();
			}
			String str = "";
			if(!reflush)
			 str += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> \n";
			 str +=	"<script language=javascript>\n";
			if(alert){
			str+="alert('操作成功');\n";
			}
			if(tzurl.equals(""))
			{
				if(reflush){
					str+="parent.location=parent.location;\n";
				}else{
					str+="window.location=String(window.location).replace(new RegExp('f=f', 'g'), '');";
				}
			}
			else
			{
				str+="location.href='"+tzurl+"';\n";
			}
			
			str+="</script>";
			
			
			PrintWriter wrt = null;
			try {
			wrt = response.getWriter();
			} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			}
			wrt.write(str);
			}
			
			return "";
		}
		
		public void delete(HttpServletRequest request,String tablename)
		{
			
			int i = 0;
			try {
				String did = request.getParameter("did");
				if(did==null)did = request.getParameter("scid");
				if(did!=null){
					if(did.length()>0){
				Statement st = conn.createStatement();
				System.out.println("delete from "+tablename+" where id="+did);
				 st.execute("delete from "+tablename+" where id="+did);
				 st.close();
					}
				}
				 
				   
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} 
		}

		
		
		public String getCols(String table)
		{  
			String str = "";
			Connection conn = this.getConn();
			try {
				Statement st = conn.createStatement();
			    ResultSet rs = st.executeQuery("select * from "+table);
			    ResultSetMetaData rsmd = rs.getMetaData();
			    
			    int i = rsmd.getColumnCount(); 
		    	for(int j=2;j<=i;j++)
		    	{
		    	str+=rsmd.getColumnName(j)+",";
		    	}
			    
			}catch (Exception e) {
				e.printStackTrace();
			}
			str = str.substring(0,str.length()-1);
			 
			return str;
		}
		
		
		public String update(HttpServletRequest request,HttpServletResponse response, String tablename,HashMap extmap,boolean alert,boolean reflush,String tzurl)
		{
			if(request.getParameter("f")!=null){
			Enumeration enumeration = request.getParameterNames();
			String names = ",";
			while(enumeration.hasMoreElements())
			{
			names += enumeration.nextElement().toString()+",";
			}
			HashMap typemap = new HashMap();
			ArrayList<String> collist = new ArrayList();
			String sql = "update "+tablename+" set ";
			Connection conn = this.getConn();
			try {
				Statement st = conn.createStatement();
			    ResultSet rs = st.executeQuery("select * from "+tablename);
			    ResultSetMetaData rsmd = rs.getMetaData();
	            int i = rsmd.getColumnCount();
			    	System.out.println(i);
			    	for(int j=1;j<=i;j++)
			    	{
			    	if(rsmd.getColumnName(j).equals("id"))continue;
					if(rsmd.getColumnName(j).equals("ID"))continue;
					if(rsmd.getColumnName(j).equals("Id"))continue;
					if(rsmd.getColumnName(j).equals("iD"))continue;
			    	typemap.put(rsmd.getColumnName(j)+"---", rsmd.getColumnTypeName(j));
			    	collist.add(rsmd.getColumnName(j));
	    	    	if(names.indexOf(","+rsmd.getColumnName(j)+",")>-1)
	    	    	{
	    	    		
	    	    		String[] values = request.getParameterValues(rsmd.getColumnName(j));
			    		String value="";
			    		for(String vstr:values)
			    		{
			    			if(vstr==null)vstr="";
			    			if(vstr.equals("null"))vstr="";
			    			if(vstr.trim().equals(""))continue;
			    			
			    			if(request.getParameter(vstr)!=null&&!"".equals(request.getParameter(vstr))&&request.getParameter("dk-"+rsmd.getColumnName(j)+"-value")!=null)
			    			{
			    				String dkv = request.getParameter(vstr);
			    				String dknamevalue = request.getParameter("dk-"+rsmd.getColumnName(j)+"-value");
			    				vstr+=" - "+dknamevalue+":"+dkv;
			    				System.out.println(vstr);
			    			}
			    			//if(vstr.length()<)
			    			value+=vstr+" ~ ";
			    		}
			    		if(value==null)value="";
		    			if(value.equals("null"))value="";
			    		if(value.length()>0)value=value.substring(0,value.length()-3);
	    	    		
	    	    		if(rsmd.getColumnTypeName(j).equals("int"))
	    	    		{
	    	    		 sql+=rsmd.getColumnName(j)+"="+value+",";
	    	    		}else{
	    	    			 sql+=rsmd.getColumnName(j)+"='"+value+"',";
	    	    		}
	    	    	}else{
	    	    		if(extmap.get(rsmd.getColumnName(j))!=null)
	    	    		{
	    	    			if(rsmd.getColumnTypeName(j).equals("int"))
	        	    		{
	        	    		 sql+=rsmd.getColumnName(j)+"="+extmap.get(rsmd.getColumnName(j))+",";
	        	    		}else{
	        	    			 sql+=rsmd.getColumnName(j)+"='"+extmap.get(rsmd.getColumnName(j))+"',";
	        	    		}
	    	    		}
	    	    	}
			    	}
			    	sql = sql.substring(0,sql.length()-1);
			    	sql+=" where id="+request.getParameter("id");
			       System.out.println(sql);
			    	Statement st1 = conn.createStatement();
			    	st1.execute(sql);
			    	st1.close();
			    rs.close();
			    st.close(); 
			     
			} catch (SQLException e) {
				e.printStackTrace();
			}
			String str = "";
			if(!reflush)
			 str += "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n" ;
			 str +=	"<script language=javascript>\n";
			if(alert){
			str+="alert('操作成功');\n";
			}
			if(tzurl.equals(""))
			{
				if(reflush){
					str+="parent.location=parent.location;\n";
				}else{
					str+="window.location=String(window.location).replace(new RegExp('f=f', 'g'), '');";
				}
			}
			else
			{
				str+="location.href='"+tzurl+"';\n";
			}
			
			 
			str+="</script>\n";
			
			PrintWriter wrt = null;
			try {
				//request.get
			wrt = response.getWriter();
			} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			}
			wrt.write(str);
			}
	        return "";
		}
		
		
	
		public Connection getConn()
		{
		        try
		        { 
		        	if(conn==null||conn.isClosed()){
		        		
		        		 Class.forName("com.mysql.jdbc.Driver");
			        	 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jspmxyesjyxtns5694mysql?characterEncoding=utf-8","root","root");
						 
						// Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			        	 //conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=jspmxyesjyxtns5694","sa","sa123456");
		            }}
		        catch(Exception e)
		        {
		            e.printStackTrace();
		        }
		        return conn;
		}
	
	
	public int getInt(String sql)
	{
		int i = 0;
		try {
			Statement st = conn.createStatement();
			ResultSet rs = st.executeQuery(sql);
			if(rs.next())
			{
				i = rs.getInt(1);
			}
			    st.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return i;
	}
	
	
	public double getDouble(String sql)
	{
		double i = 0;
		try {
			Statement st = conn.createStatement();
			ResultSet rs = st.executeQuery(sql);
			if(rs.next())
			{
				i = rs.getDouble(1);
				
			}
			    st.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return i;
	}
	
	public void commOper(String sql)
	{
		System.out.println(sql);
		try {
			Statement st = conn.createStatement();
		    st.execute(sql);
		    st.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void commOperSqls(ArrayList<String> sql)
	{
		
		try {
			conn.setAutoCommit(false);
			for(int i=0;i<sql.size();i++)
			{
			Statement st = conn.createStatement();
			System.out.println(sql.get(i));
		    st.execute(sql.get(i));
		    st.close();
			}
			conn.commit();
		} catch (SQLException e) {
			try {
				conn.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			e.printStackTrace();
		}finally{
			try {
				conn.setAutoCommit(true);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	
	public List<HashMap> select(String sql)
	{ 
		System.out.println(sql);
		List<HashMap> list = new ArrayList();
		try {
			Statement st = conn.createStatement();
		    ResultSet rs = st.executeQuery(sql);
		    ResultSetMetaData rsmd = rs.getMetaData();
           
		    while(rs.next())
		    {
		    	HashMap map = new HashMap();
		    	int i = rsmd.getColumnCount();
		    	for(int j=1;j<=i;j++)
		    	{
		    		if(!rsmd.getColumnName(j).equals("ID"))
		    		{
		    			String str = rs.getString(j)==null?"": rs.getString(j);
		    			if(str.equals("null"))str = "";
		    			map.put(rsmd.getColumnName(j), str);
		    		}
		    		else
		    			map.put("id", rs.getString(j));
		    	}
		    	list.add(map);
		    }
		    rs.close();
		    st.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			
			if(sql.equals("show tables"))
			list = select("select table_name from   INFORMATION_SCHEMA.tables");
			else
				e.printStackTrace();
		}
		return list;
	}
	
	
	public List<List> selectforlist(String sql)
	{
		List<List> list = new ArrayList();
		try {
			Statement st = conn.createStatement();
		    ResultSet rs = st.executeQuery(sql);
		    ResultSetMetaData rsmd = rs.getMetaData();
           
		    while(rs.next())
		    {
		    	List<String> list2 = new ArrayList();
		    	int i = rsmd.getColumnCount();
		    	for(int j=1;j<=i;j++)
		    	{
		    		if(!rsmd.getColumnName(j).equals("ID"))
		    		{
		    			String str = rs.getString(j)==null?"": rs.getString(j);
		    			if(str.equals("null"))str = "";
		    			list2.add( str);
		    		}
		    		else
		    			list2.add(rs.getString(j));
		    	}
		    	list.add(list2);
		    }
		    rs.close();
		    st.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return list;
	}
	
	
	public void close()
	{
		 
	}
	
	/**
	 * 执行一条查询sql,以 List<hashmap> 的形式返回查询的记录,记录条数,和从第几条开始,由参数决定,主要用于翻页
	 * pageno 页码  rowsize 每页的条数
	 */
	public List<HashMap> select(String sql, int pageno, int rowsize) {
		List<HashMap> list=new ArrayList<HashMap>();
		List<HashMap> mlist=new ArrayList<HashMap>();
		try{
			list=this.select(sql);
			int min = (pageno-1)*rowsize;
			int max = pageno*rowsize;
			
			for(int i=0;i<list.size();i++)
			{
				
				if(!(i<min||i>(max-1)))
				{
				mlist.add(list.get(i));
				}
			}
		}catch(RuntimeException re){
			re.printStackTrace();
			throw re;
		}
		
		
		return mlist;
	}
	public static void main(String[] args) { 
	}
}

更多关于项目的描述可以点击JSP的校园二手交易平台