基于ssh的网上商城系统

目录

系统运行环境

系统介绍

系统功能

系统产出

系统运行环境:

1、mysql5.6+

2、jdk1.8

3、tomcat8或者tomcat9

4、idea、eclipse或者MyEclipse

系统介绍:

       系统框架采用ssh结合mvc开发思想进行的系统开发。包含网上商城网站和后台管理平台两个端。其中网站用于普通用户注册、登录进行商品加入购物车及下单等操作;后台管理平台用于管理员用户登录系统对商品、订单、用户及系统进行管理。

系统功能:

1、网站首页

 

<%@ page language="java"  import="java.util.*" contentType="text/html;charset=UTF-8"%>

<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
<link rel="stylesheet" type="text/css" href="js/style.css" />

<style>
.main_iframe {
	Z-INDEX: 1; VISIBILITY: inherit; WIDTH: 100%; HEIGHT: 92%
	</style>


</head>
<body>
<s:if test="#request.listCommodityClasses">
    
<div id="main_container">
  <div class="top_bar"></div>
	<div id="header">
	
	 <div id="divstr"><br/><h2>欢迎来到网上商城</h2><h3>
	<script language=JavaScript >
var today = new Date();
var strDate = ( today.getYear() + "年" + (today.getMonth() + 1) + "月" + today.getDate() + "日");
/*var hh = today.getHours();
if(hh<10) hh = '0' + hh;
var mm = today.getMinutes();
if(mm<10) mm = '0' + mm;
var ss = today.getSeconds();
if(ss<10) ss = '0' + ss;
*/
var n_day = today.getDay();
var ww;

switch (n_day)
{
case 0:{ww =  "星期日";} break;
case 1:{ww =  "星期一";} break;
case 2:{ww =  "星期二";} break;
case 3:{ww =  "星期三";} break;
case 4:{ww =  "星期四";} break;
case 5:{ww =  "星期五";} break;
case 6:{ww =  "星期六";} break;
case 7:{ww =  "星期日";} break;
}
strDate="今天是:" + ww+"</font>";
document.write(strDate);
 </script></h3></div>
	  <!-- end of oferte_content-->
</div>
    
   <div id="main_content"> 
            <div id="menu_tab">
            <div class="left_menu_corner"></div>
                    <ul class="menu">
                         <li><a href="GoIndexAction.action" class="nav1">首页</a></li>
                         <li class="divider"></li>
                         <li><a href="GoIndexAction.action" class="nav2">在线购物</a></li>
                         <li class="divider"></li>
                         <li><a href="showCar.jsp" class="nav5">我的购物车</a></li>
                         <li class="divider"></li>
                          <c:if test="${empty sessionScope.user.username}">
                         <li class="divider"></li>
                         <li><a href="login.jsp" class="nav3" >用户登录</a></li>
                         <li class="divider"></li>                         
                         <li><a href="register.jsp" class="nav6">用户注册 </a></li>
                         </c:if>
                         <li class="divider"></li>
                    </ul>

             <div class="right_menu_corner"></div>
            </div><!-- end of menu tab -->
    
    </div> 
    
    <div class="crumb_navigation">
    导航: <span class="current"><a href="GoIndexAction.action">首页</a></span>
    
    </div > <div align="right"><form name="searchform" action="CommodityAction!findCommodityByName.action" method="post">
    <input id="commodity.commodityName" name="commodity.commodityName" style="font-size: 10pt; color: rgb(85, 85, 85);" onfocus="if(this.value=='请输入您所要查找的商品名称'){this.value='';}" onblur="if(this.value==''){this.value='请输入您所要查找的商品名称';}" value="请输入您所要查找的商品名称" size="25" maxlength="30" type="text" />
<input name="搜索" type="submit" value="搜索" />
    </form></div>
    <table border="0" cellpadding="0" cellspacing="0" align="center" width=100% height=400px>
    <tr>
    <td class="left_content">
    <table>
    <tr>
    <td class="title_box">商品分类</td></tr>
    <tr><td> 
    <ul class="left_menu">
   <s:iterator value="#request.listCommodityClasses"  status="stu" id="classes">
        	<s:if test="#stu.odd==true">
        		<li class="odd">
        			<s:a href="CommodityAction!findCommodityByClass.action?commodityClassId=%{#classes.commodityClassId} ">
        				<s:property value="#classes.commodityClassName"/>
        			</s:a>
        		</li>
        	</s:if>
        	<s:else>
        		<li class="even">
        			<s:a href="CommodityAction!findCommodityByClass.action?commodityClassId=%{#classes.commodityClassId} ">
        				<s:property value="#classes.commodityClassName"/>
        			</s:a>
        		</li>
        	</s:else>	
        </s:iterator>
  </ul><br/></td>
     </tr>
     <!--<tr>
     <td align=center class="title_box">论坛公告
     </td></tr>
     <tr>
     <td align=center ><marquee height=120 direction="up"  scrollamount=3 onmouseover="this.stop()" onmouseout="this.start()">
<h3>网上商城系统开通了,欢迎广大客户光临</h3></marquee>
     </td></tr>
    --></table>
    </td>
    
    <td class="center_content" width=100% height=400px>
    <iframe    class=main_iframe id=frmright name="frmright"   frameborder=0  scrolling=auto src="product.jsp">
	 </iframe>
	</td>
    
    <td class="right_content"><table>
    <tr>
    <td class="shopping_cart"><table>
    <tr><td class="cart_title">购物车  </td>
    </tr>
     <tr><td class="cart_icon">
     <a href="showCar.jsp" title="">
     <img src="images/shoppingcart.png" alt="" title="" width="48" height="48" border="0" /></a>
    </td>
     </tr></table>
     </td></tr>
     <tr><td> <c:if test="${empty sessionScope.user.username}">
     <form action="UserAction!login.action" name="form" method="post" >
   		<div class="title_box">用户登录</div>  
        <div class="border_box">
		<p>用户名:<input id="username" name="user.username" type="text" style="width:110px"/></p>
		<p>密&nbsp;&nbsp;&nbsp;&nbsp;码:<input id="password" name="user.password" type="password"  style="width:110px"/></p>
        <p>&nbsp;&nbsp;&nbsp;&nbsp;<input name="提交" type="submit" value="登录" /><input name="重置" type="reset" value="重置" />
        </p>
        <p align="center">&nbsp;&nbsp;&nbsp;[<a href="register.jsp">新用户注册</a>] &nbsp;[<a href="findPass.jsp" >忘记密码</a>]</p>
        
     </div>  </form> </c:if>
     <c:if test="${!empty sessionScope.user.username}">
            <div class="title_box">用户信息</div>  
        <div class="border_box">
         <br/>
		<p>欢迎登陆:${sessionScope.user.username}</p><br/>
		<p> [<a href="OrderFormAction!findOrderFormByUserName.action?orderForm.username=${sessionScope.user.username}">我的订单</a>]&nbsp;&nbsp; [<a href="updatePass.jsp" >修改密码</a>] </p>
		<p> [<a href="userInfo.jsp">个人信息</a>]&nbsp;&nbsp; [<a href="UserAction!logout.action"  onclick="return confirm('确定要退出吗?')" >退出系统</a>] </p>
     </div>
        </c:if> 
      
    </td>
     </tr>
    </table></td>
    </tr>
    </table>
  
 
  <div class="footer" align="center"><br/>&copy;&nbsp;&nbsp;|&nbsp;XXXX&nbsp;|&nbsp;版权所有&nbsp;|&nbsp;网上商城系统<br/><a href="admin/login.jsp">后台管理</a></div>

</div>
</s:if>
    <s:else><s:action name="GoIndexAction" executeResult="true"></s:action>
    </s:else>
</body>
</html>
package cn.itbaizhan.action;

import java.util.Collection;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import cn.itbaizhan.po.User;
import cn.itbaizhan.service.UserService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

//import com.cds.po.Department;
//import com.cds.po.Role;

//import com.cds.service.DepartmentService;
//import com.cds.service.RoleService;

@SuppressWarnings("serial")
@Component("userAction")
@Scope("prototype")//多例,每个请求生成一个新的action
public class UserAction extends ActionSupport {
	private User user;
    //要调用UserService的方法,所以要声明,让spring把其实现类注入。@Resource 默认按 byName 自动注入
	@Resource(name="userServiceImpl")
	UserService service;
	public UserService getService() {
		return service;
	}

	public void setService(UserService service) {
		this.service = service;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}
	

	@Override
	public String execute() throws Exception {
		// 不要直接访问数据库,应该访问业务逻辑层service,而service去访问DAO,dao去访问数据库
		String username= user.getUsername();
		System.out.println(username);
		
		User user = service.findUserByName(username);
		if(user==null){
			this.service.save(this.user);
			return "success";
		}
		else{
			return "error";
		}
	}
	//列表
	@SuppressWarnings("unchecked")
	public String listUser(){
		Map request = (Map) ActionContext.getContext().get("request");
		
		request.put("listUsers", service.findAllUsers());
		System.out.println("listUsers"+service.findAllUsers().size());
		return "listUser";
	}
	
	//查询
	@SuppressWarnings("unchecked")
	public String queryUser(){
		String username= user.getUsername();
		System.out.println(username);
		String name= user.getName();
		
		User user=this.service.queryUser(username);
		System.out.println("user:"+user);
		Map request = (Map) ActionContext.getContext().get("request");
		
		request.put("queryUser", user);
		//System.out.println("queryUser"+service.queryUser().size());

		return "queryUser";
	}
	
	public String deleteUser(){
		this.service.delete(user);
		return "deleteUser";
	}
	public String findUserById(){
		user = this.service.findUserById(user.getUserId());
		return "findUser";
	}
	
	public String updateUser(){
		
		this.service.update(user);
		System.out.println("user:"+user.getUserId());
		ActionContext.getContext().put("updatemessage", "您的信息已经更新!");
		return "updateUser";
	}
		
	@SuppressWarnings("unchecked")
	public String addUser(){
		Map request = (Map) ActionContext.getContext().get("request");
		
		return "adduser";
	}
	//个人密码跳转
	/*public String updatePassword(){
		return "updatePassword";
	}
	*/
	public String findUser()
	{
		String username= user.getUsername();
		System.out.println("username:"+username);
		String name= user.getName();
		System.out.println("name:"+name);
		String sex= user.getSex();
		System.out.println("sex:"+sex);
		String post= user.getPost();
		System.out.println("post:"+post);
		String address= user.getAddress();
		System.out.println("address:"+address);
		String phone= user.getPhone();
		System.out.println("phone:"+phone);
		String email= user.getEmail();
		System.out.println("email:"+email);
		
		User user=this.service.findUserByinfo(username, name,sex,phone, post, address, email);
		System.out.println("user:"+user);

		if(user==null){
			ActionContext.getContext().put("findUsernull", "没有该用户信息!");
			return "findUsernull";
		}else{
		ActionContext.getContext().getSession().put("findUser", user);

		return "findUser";
		}
		
	}
	//修改密码
	public String upPass()
	{
		this.service.update(user);
		System.out.println("user:"+user.getUserId());
		ActionContext.getContext().put("upPass", "您的密码已经修改!");
		return "upPass";
	}
	//重设密码
	public String updatePass()
	{
		this.service.update(user);
		System.out.println("user:"+user.getUserId());
		ActionContext.getContext().put("updatePass", "您的密码已经更改!");
		return "updatePass";
	}
	//用户注册验证
	public String register()
	{
		
		String username= user.getUsername();
		System.out.println(username);
		
		User user = service.findUserByName(username);
		System.out.println("name:"+username+",user:"+user);
		if(user == null){
			ActionContext.getContext().put("regmessage", username+"可以注册");
			return "regsuccess";
		}else{
			ActionContext.getContext().put("regmessage", username+"已经被注册");
			return "regerror";
		}
	}
	//用户登录
	public String login(){
		String username= user.getUsername();
		System.out.println(username);
		String password=user.getPassword();

		User user = service.getUserByLoginNameAndPassword(username,password);
		System.out.print("name:"+username+"pass"+password+"user"+user);
		if(user == null){
			ActionContext.getContext().put("message", "用户名或密码错误");		
			return "login";
		}else{
			ActionContext.getContext().getSession().put("user", user);
			return "index";
		}
	}
	//用户退出
	public String logout(){
		ActionContext.getContext().getSession().clear();
		return "logout";
	}
	
}
package cn.itbaizhan.service;

import java.util.List;
import java.util.Map;

import cn.itbaizhan.po.User;

public interface UserService {
//	和UserDao的方法一样,可以封装,因为这边只是调用
	public void save(User user);
	public void delete(User id);
	public User findUserById(int id);
	public List<User> findAllUsers();
	public void update(User user); 
	//public void initPassword(User user);
	public User getUserByLoginNameAndPassword(String username, String password);
	public User findUserByName(String username);
	public User queryUser(String username);
	public User findUserByinfo(String username, String name, String sex,
			String phone, String post, String address, String email);
}
package cn.itbaizhan.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Component;

import cn.itbaizhan.dao.UserDao;
import cn.itbaizhan.po.User;
import cn.itbaizhan.service.UserService;
//把类交给spring管理(如同配置bean节点)此类受spring事务管理
@Component("userServiceImpl")
public class UserServiceImpl implements UserService {
	//要调用dao层代码,所以要有UserDao的对象,把其实现类靠spring注入
	@Resource(name="userDaoImpl")
	private UserDao userDao;
	public UserDao getUserDao() {
		return userDao;
	}

	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

	public void delete(User user) {
		this.userDao.delete(user);

	}
	public List<User> findAllUsers() {
		return this.userDao.findAllUsers();
	}
	public User findUserById(int id) {
		
		return this.userDao.findUserById(id);
	}

	public void save(User user) {
		this.userDao.save(user);

	}

	public void update(User user) {
		this.userDao.update(user);
	}

	public User getUserByLoginNameAndPassword(String username, String password) {
		
		return this.userDao.getUserByLoginNameAndPassword(username,password);
	}

	public User findUserByName(String username) {
		
		return this.userDao.findUserByName(username);
	}

	public User queryUser(String username) {
		return this.userDao.queryUser(username);
	}

	public User findUserByinfo(String username, String name, String sex,
			String phone, String post, String address, String email) {
		
		return this.userDao.findUserByinfo(username, name,sex,phone, post, address, email);
	}


}
package cn.itbaizhan.dao;

import java.util.List;

import cn.itbaizhan.po.User;

public interface UserDao {
	public void save(User user);
	public void delete(User user);
	public User findUserById(int id);
	public User findUserByinfo(String username, String name, String sex,String phone,
			String post,String address, String email);
	public List<User> findAllUsers();
	public void update(User user);
	//public void initPassword(User user);
	public User getUserByLoginNameAndPassword(String username, String password);
	public User findUserByName(String username);
	public User queryUser(String username);
	
}
package cn.itbaizhan.dao.impl;

import java.util.List;

import javax.annotation.Resource;




import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Component;

import cn.itbaizhan.dao.UserDao;
import cn.itbaizhan.po.User;
@Component("userDaoImpl")
public class UserDaoImpl implements UserDao {
//使用spring对Hibernate的模版 HibernateTemplate
	@Resource(name="hibernateTemplate")
	private HibernateTemplate hibernateTemplate;
	
	public void delete(User user) {
	hibernateTemplate.delete(user);
	}
	@SuppressWarnings("unchecked")//不检查,当编码可能存在警告时,比如安全警告,可以用它来消除
	public List<User> findAllUsers() {
		String hql = "from User";
		return (List<User>)hibernateTemplate.find(hql);
	}

	public User findUserById(int id) {
		User user = (User)hibernateTemplate.get(User.class, id);
		return user;
	}

	public void save(User user) {
		System.out.println(user);
	 hibernateTemplate.save(user);
	}

	public void update(User user) {
	hibernateTemplate.update(user);

	}
	public HibernateTemplate getHibernateTmeplate() {
		return hibernateTemplate;
	}
	public void setHibernateTmeplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
	
	//获取用户
	public User getUserByLoginNameAndPassword(String username, String password) {
		
		System.out.println("用户名"+username);
		
		
		return  (User) hibernateTemplate.getSessionFactory().openSession().createQuery(
		"from User u where u.username=? and u.password=?").setParameter(0, username).setParameter(1, password).uniqueResult();
	}
	public User findUserByName(String username) {
		System.out.println("用户名:"+username);
				
		return  (User) hibernateTemplate.getSessionFactory().openSession().createQuery(
		"from User u where u.username=?").setParameter(0, username).uniqueResult();
	
		
	}

	public User queryUser(String username) {
		
		//String hql = "from User";
		return (User)hibernateTemplate.getSessionFactory().openSession().createQuery(
				"from User u where u.username=? ").setParameter(
						0, username).uniqueResult();
		
	}
	public User findUserByinfo(String username, String name, String sex,
			String phone, String post, String address, String email) {
		return (User)hibernateTemplate.getSessionFactory().openSession().createQuery(
		"from User u where u.username=? and u.name=? and u.sex=? and u.phone=? and u.post=? and u.address=? and u.email=?").setParameter(
				0, username).setParameter(1,name).setParameter(2,sex).setParameter(3,phone).setParameter(4,post).setParameter(5,address).setParameter(6,email).uniqueResult();

}

	

}

2、添加购物车

3、提交订单

 

4、订单付款

 

5、我的订单

 

6、后台管理首页

 

7、后端管理主页

 

8、商品管理

 

9、订单管理

 

10、用户管理

 

11、系统管理

 

系统产出:

1、程序源码包

2、数据库初始化脚本文件 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于SSH的网上零食商城销售系统是一种基于SSH(Spring、Struts、Hibernate)框架,利用Java语言开发的一种电子商务系统。本文就该系统相关文献进行综述。 第一篇文献是《基于SSH的电子商务网站设计与实现》。该文献分析了电子商务系统开发中的关键问题,并利用SSH框架设计和实现了一个完整的电子商务网站。本文献重点介绍了SSH框架的搭建、前端用户界面的设计、订单管理、购物车管理等技术实现。 第二篇文献是《基于SSH的网上零食商城设计与开发》。该文献以一个网上零食商城为例,通过SSH框架的搭建,实现了用户登录、购物车、订单管理等功能。本文献也介绍了系统中的数据库设计和前端页面的布局方式。 第三篇文献是《基于SSH的电子商务平台及其安全性分析》。该文献介绍了SSH框架的优势和适用性,以及电子商务系统中的安全问题和对策。本文献重点介绍了SSH框架对用户鉴权和数据加密的支持,以确保网站的安全性。 第四篇文献是《基于SSH网上商城系统设计与实现》。该文献结合网上商城的实际需求,利用SSH框架实现了一个完整的网上商城系统。本文献注重介绍了系统的设计思路、实现方法和技术难点,包括前端展示、后台管理、支付接口集成等。 综合以上文献可以看出,基于SSH的网上零食商城销售系统是一种成熟、稳定的电子商务系统,具有灵活、高效、安全的特点。同时,该系统开发过程中,需要充分考虑数据库的设计、前端页面的用户体验、订单管理、购物车管理等核心技术问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值