基于javaweb+mysql的ssm游戏商城系统(java+ssm+jsp+javascript+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SSM游戏商城系统(java+ssm+jsp+javascript+mysql)
项目介绍
本项目分为前后台,前台为普通用户角色,后台为管理员角色;
管理员角色包含以下功能:
一级分类管理,二级分类管理,公告管理,添加公告,游戏管理,用户信息管理,留言管理,管理员登录,订单管理等功能。
用户角色包含以下功能:
修改密码,发表留言,查看我的订单,查看游戏分类,查看游戏详情,查看购物车,用户登录,确认订单等功能。
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7、8.0等版本均可;
技术栈
-
后端:Spring+springmvc+mybatis
-
前端:JSP+css+javascript+jQuery
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2.使用IDEA/Eclipse/MyEclipse导入项目,配置tomcat;
-
将项目中config/jdbc.properties配置文件中的数据库配置改为自己的配置;
-
运行项目,在浏览器中输入http://localhost:8080/ 登录
用户账号/密码: user/123456
管理员账号/密码:admin/admin
return "category";
}
// 根据csid来分页查询商品
@RequestMapping("/findCategorySecond1")
public String findCategorySecond1(@RequestParam int csid,Model model,@RequestParam int page){
PageBean<Product> proPageBean = productService.finbProductByCsid(csid,page);
model.addAttribute("pageBean",proPageBean);
return "category";
}
}
public class EncodingInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object arg2) throws Exception {
response.setContentType("text/html;charset=UTF-8");
/*String method = request.getMethod();
if (method.equalsIgnoreCase("post")) {
request.setCharacterEncoding("utf-8");
} else {
// new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");
Iterator iter = request.getParameterMap().values().iterator();
while (iter.hasNext()) {
String[] parames = (String[]) iter.next();
for (int i = 0; i < parames.length; i++) {
parames[i] = new String(parames[i].getBytes("iso8859-1"),
"utf-8");// 此处utf-8与页面编码一样
}
}
}*/
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object arg2, ModelAndView arg3) throws Exception {
}
@Controller
public class AdminController {
@Autowired
private UserService userService;
@Autowired
public CategoryService categoryService;
@Autowired
public CategorySecondService categorySecondService;
@Autowired
public ProductService productService;
@Autowired
private OrderService orderService;
@Autowired
private MessageService messageService;
@RequestMapping("/admin/admin_findAll")
public String admin_findAll(Model model,HttpServletRequest request) throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
return "redirect:/admin/adminOrder_findAllByPage.action?page=1";
}
//后台留言管理
@RequestMapping("/admin/adminMessage_findAllByPage")
public String adminMessage_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
PageBean<Message> pageBean = messageService.findAllMessageByPage(page);
model.addAttribute("pageBean", pageBean);
return "admin/message/list";
}
@RequestMapping("/admin/adminMessage_delete")
public String adminOrder_updateState(@RequestParam int messageid, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
messageService.deleteMessage(messageid);
return "redirect:/admin/adminMessage_findAllByPage.action?page=1";
}
}
return "admin/order/list";
}
//更新订单状态
@RequestMapping("/admin/adminOrder_updateState")
public String adminOrder_updateState(@RequestParam int oid, @RequestParam int status, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
orderService.updateOrderStatus(oid, status);
return "redirect:/admin/adminOrder_findAllByPage.action?page=1";
}
//后台留言管理
@RequestMapping("/admin/adminMessage_findAllByPage")
public String adminMessage_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
PageBean<Message> pageBean = messageService.findAllMessageByPage(page);
model.addAttribute("pageBean", pageBean);
return "admin/message/list";
}
@RequestMapping("/admin/adminMessage_delete")
public String adminOrder_updateState(@RequestParam int messageid, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
@RequestMapping("/admin/adminProduct_update")
public String adminProduct_update(Product product,HttpServletRequest request,MultipartFile file) throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
product.setPdate(new Date());
// 上传图片
if (file != null) {
String path = request.getServletContext().getRealPath(
"/products");
String uploadFileName = file.getOriginalFilename();
String fileName = UUIDUtiils.getUUID()+uploadFileName;
File diskFile = new File(path + "//" + fileName);
file.transferTo(diskFile);
product.setImage("products/" + fileName);
}
productService.adminProduct_update(product);
return "redirect:/admin/adminProduct_findAllByPage.action?page=1";
}
/** 订单管理模块 **/
@RequestMapping("/admin/adminOrder_findAllByPage")
public String adminOrder_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(page);
model.addAttribute("pageBean", allProPageBean);
return "admin/order/list";
}
//adminOrder_findByState
@RequestMapping("/admin/adminOrder_findByState")
public String adminOrder_findByState(@RequestParam int page,@RequestParam int state, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(state,page);
model.addAttribute("pageBean", allProPageBean);
orderService.toOrder(orders);
Map<Integer, CartItem> cartItems = cart.getCartItem();
for (Entry<Integer, CartItem> entry : cartItems.entrySet()) {
CartItem cartItem = entry.getValue();
Orderitem orderitem = new Orderitem();
orderitem.setProduct(cartItem.getProduct());
orderitem.setCount(cartItem.getCount());
orderitem.setPid(cartItem.getProduct().getPid());
orderitem.setSubtotal(cartItem.getSubtotle());
orderitem.setOid(orders.getOid());
orders.getOiList().add(orderitem);
orderService.toOrderItem(orderitem);
}
cart.clearCart();
request.getSession().setAttribute("orders", orders);
return "order";
}
// 为定单付款
@RequestMapping("/payOrder")
public String payOrder(Orders orders,@RequestParam String receiveInfo,@RequestParam String phoNum,@RequestParam String accepter) throws Exception {
orders.setReceiveinfo(receiveInfo);
orders.setPhonum(phoNum);
orders.setAccepter(accepter);
orderService.payOrder(orders);
return "redirect:myOrder.action?page=1";
}
//payOrderAganin
@RequestMapping("/payOrderAganin")
public String payOrderAganin(@RequestParam int oid,HttpServletRequest request){
Orders noPayOrder = orderService.findOrderByOid(oid);
request.getSession().setAttribute("orders", noPayOrder);
return "order";
}
// 查询myOrder
@RequestMapping("/myOrder")
public String myOrder(@RequestParam int page, Model model,
HttpServletRequest request) throws Exception {
User loginUser = (User) request.getSession().getAttribute("loginUser");
PageBean<Orders> pageBean = orderService.findOrderByUidAndPage(page,loginUser.getUid());
model.addAttribute("pageBean", pageBean);
return "orderList";
}
// 确认收货
@RequestMapping("/updateState")
public String updateState(@RequestParam int oid ) throws Exception {
orderService.updateOrderStatus(oid, 3);
return "redirect:myOrder.action?page=1";
}
}
@RequestMapping("/admin/adminCategory_update")
public String adminCategory_update(@RequestParam int cid,
@RequestParam String cname,HttpServletRequest request) {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
Category category = new Category();
category.setCid(cid);
category.setCname(cname);
categoryService.adminCategory_update(category);
return "redirect:/admin/adminCategory_findAll.action";
}
@RequestMapping("/admin/adminCategory_delete")
public String adminCategory_delete(@RequestParam int cid,HttpServletRequest request) throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
categorySecondService.adminCategorySecond_deleteByCid(cid);
categoryService.deleteCategoryByCid(cid);
return "redirect:/admin/adminCategory_findAll.action";
}
// admin 的二级分类的管理
@RequestMapping("/admin/adminCategorySecond_findAllByPage")
public String adminCategorySecond_findAllByPage(@RequestParam int page,Model model,HttpServletRequest request) {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
PageBean<Categorysecond> csPageBean = categorySecondService
.adminCategorySecond_findAllByPage(page);
/*List<Categorysecond> list = csPageBean.getList();
for (Categorysecond categorysecond : list) {
System.out.println(categorysecond.getCsname());
}*/
@RequestMapping("/findCategorySecond1")
public String findCategorySecond1(@RequestParam int csid,Model model,@RequestParam int page){
PageBean<Product> proPageBean = productService.finbProductByCsid(csid,page);
model.addAttribute("pageBean",proPageBean);
return "category";
}
}
public class EncodingInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response,
Object arg2) throws Exception {
response.setContentType("text/html;charset=UTF-8");
/*String method = request.getMethod();
if (method.equalsIgnoreCase("post")) {
request.setCharacterEncoding("utf-8");
} else {
// new String(request.getParameter("name").getBytes("iso8859-1"),"utf-8");
Iterator iter = request.getParameterMap().values().iterator();
while (iter.hasNext()) {
String[] parames = (String[]) iter.next();
for (int i = 0; i < parames.length; i++) {
parames[i] = new String(parames[i].getBytes("iso8859-1"),
"utf-8");// 此处utf-8与页面编码一样
}
}
}*/
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object arg2, ModelAndView arg3) throws Exception {
@Controller
public class checkImgController {
@RequestMapping("checkImg")
public void checkImg(HttpServletRequest request ,HttpServletResponse response) throws IOException {
int width = 120;
int height = 30;
// 步骤一 绘制一张内存中图片
BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 步骤二 图片绘制背景颜色 ---通过绘图对象
Graphics graphics = bufferedImage.getGraphics();// 得到画图对象 --- 画笔
// 绘制任何图形之前 都必须指定一个颜色
graphics.setColor(getRandColor(200, 250));
graphics.fillRect(0, 0, width, height);
// 步骤三 绘制边框
graphics.setColor(Color.WHITE);
graphics.drawRect(0, 0, width - 1, height - 1);
// 步骤四 四个随机数字
Graphics2D graphics2d = (Graphics2D) graphics;
// 设置输出字体
graphics2d.setFont(new Font("宋体", Font.BOLD, 18));
// String words
// ="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
String words = "\u7684\u4e00\u4e86\u662f\u6211\u4e0d\u5728\u4eba\u4eec\u6709\u6765\u4ed6\u8fd9\u4e0a\u7740\u4e2a\u5730\u5230\u5927\u91cc\u8bf4\u5c31\u53bb\u5b50\u5f97\u4e5f\u548c\u90a3\u8981\u4e0b\u770b\u5929\u65f6\u8fc7\u51fa\u5c0f\u4e48\u8d77\u4f60\u90fd\u628a\u597d\u8fd8";
Random random = new Random();// 生成随机数
// 定义StringBuffer
StringBuffer sb = new StringBuffer();
// 定义x坐标
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(state,page);
model.addAttribute("pageBean", allProPageBean);
return "admin/order/list";
}
//订单详情
//adminOrder_findOrderItem
@RequestMapping("/admin/adminOrder_findOrderItem")
public String adminOrder_findOrderItem(@RequestParam int oid, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
Orders orderItems = orderService.findOrderByOid(oid);
model.addAttribute("orderItems", orderItems);
return "admin/order/list";
}
//更新订单状态
@RequestMapping("/admin/adminOrder_updateState")
public String adminOrder_updateState(@RequestParam int oid, @RequestParam int status, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
orderService.updateOrderStatus(oid, status);
return "redirect:/admin/adminOrder_findAllByPage.action?page=1";
}
//后台留言管理
@RequestMapping("/admin/adminMessage_findAllByPage")
public String adminMessage_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
throws Exception {
Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
if(adminuserLogin==null){
request.getSession().setAttribute("message","对不起您还没有登录");
return "admin/index";
}
@Controller
public class ajaxController {
@Autowired
private UserService userService;
@RequestMapping("/loginFindByid")
public void loginFindByid(HttpServletRequest request,
HttpServletResponse response, @RequestParam String username) {
response.setContentType("text/html;charset=UTF-8");
try {
User user = userService.loginFindByid(username);
if (user!=null) {
response.getWriter().write("可以登录");
}else{
response.getWriter().write("不可以登录");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@RequestMapping("/registFindByid")
public void registFindByid(HttpServletRequest request,
HttpServletResponse response, @RequestParam String username) {
response.setContentType("text/html;charset=UTF-8");
try {
User user = userService.loginFindByid(username);
if (user!=null) {
response.getWriter().write("已经被注册");
}else{
response.getWriter().write("可以注册");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
request.getSession().setAttribute("cart", cart);
}
return cart;
}
}
@Controller
public class messageController {
@Autowired
private MessageService messageService;
@RequestMapping("/saveMessage")
public String saveMessage(@RequestParam String messageinfo,HttpServletRequest request,Model model) throws Exception {
Message Message = new Message();
User loginUser = (User) request.getSession().getAttribute("loginUser");
if(loginUser==null){
model.addAttribute("message", "对不起您还没有登录");
return "msg";
}
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Message.setMessage(messageinfo);
Message.setUid(loginUser.getUid());
@Controller
public class CategorySecondController {
@Autowired
private ProductService productService;
//根据一级目录查找二级目录下面的商品(使用延迟加载但是这里不知为啥使用起来出错了)
@RequestMapping("/findCategorySecond")
public String findCategorySecond(HttpServletRequest request,@RequestParam int cid,Model model,@RequestParam int page) throws Exception {
request.getSession().setAttribute("cid",cid);
PageBean<Product> proPageBean = productService.findProductyBycid(cid,page);
model.addAttribute("pageBean",proPageBean);
return "category";
}
// 根据csid来分页查询商品
@RequestMapping("/findCategorySecond1")
public String findCategorySecond1(@RequestParam int csid,Model model,@RequestParam int page){
PageBean<Product> proPageBean = productService.finbProductByCsid(csid,page);
model.addAttribute("pageBean",proPageBean);
return "category";
}
}
orderitem.setSubtotal(cartItem.getSubtotle());
orderitem.setOid(orders.getOid());
orders.getOiList().add(orderitem);
orderService.toOrderItem(orderitem);
}
cart.clearCart();
request.getSession().setAttribute("orders", orders);
return "order";
}
// 为定单付款
@RequestMapping("/payOrder")
public String payOrder(Orders orders,@RequestParam String receiveInfo,@RequestParam String phoNum,@RequestParam String accepter) throws Exception {
orders.setReceiveinfo(receiveInfo);
orders.setPhonum(phoNum);
orders.setAccepter(accepter);
orderService.payOrder(orders);
return "redirect:myOrder.action?page=1";
}
//payOrderAganin
@RequestMapping("/payOrderAganin")
public String payOrderAganin(@RequestParam int oid,HttpServletRequest request){
Orders noPayOrder = orderService.findOrderByOid(oid);
request.getSession().setAttribute("orders", noPayOrder);
return "order";
}
// 查询myOrder
@RequestMapping("/myOrder")
public String myOrder(@RequestParam int page, Model model,
HttpServletRequest request) throws Exception {
User loginUser = (User) request.getSession().getAttribute("loginUser");
PageBean<Orders> pageBean = orderService.findOrderByUidAndPage(page,loginUser.getUid());
model.addAttribute("pageBean", pageBean);
return "orderList";
}
// 确认收货
@RequestMapping("/updateState")
public String updateState(@RequestParam int oid ) throws Exception {
orderService.updateOrderStatus(oid, 3);
return "redirect:myOrder.action?page=1";
}
}
@Controller
public class registController {
@Autowired
private UserService userService;
@RequestMapping("regist")
public String regist() {
return "regist";
}
@RequestMapping("/userRegist")
public String userRegist(Model model, HttpServletRequest request,
@Validated User user, BindingResult bindingResult,
@RequestParam String checkImg) throws Exception {
if (bindingResult.hasErrors()) {
List<ObjectError> errors =bindingResult.getAllErrors();
List<String> list = new ArrayList<>();
for (ObjectError objectError : errors) {
String str = new String(objectError.getDefaultMessage()
.getBytes("ISO-8859-1"), "gbk");
list.add(str);
}
model.addAttribute("errors", list);
return "regist";
}
// 查看验证码
String sessionCode = (String) request.getSession().getAttribute(
"checkcode");
// System.out.println("adadadad" + sessionCode);
if (!sessionCode.equalsIgnoreCase(checkImg)) {
// model.addAttribute("message", "验证码错误请重新注册");
throw new zdyException("验证码错误请重新注册");
PageBean<Orders> pageBean = orderService.findOrderByUidAndPage(page,loginUser.getUid());
model.addAttribute("pageBean", pageBean);
return "orderList";
}
// 确认收货
@RequestMapping("/updateState")
public String updateState(@RequestParam int oid ) throws Exception {
orderService.updateOrderStatus(oid, 3);
return "redirect:myOrder.action?page=1";
}
}
@Controller
public class checkImgController {
@RequestMapping("checkImg")
public void checkImg(HttpServletRequest request ,HttpServletResponse response) throws IOException {
int width = 120;
int height = 30;
// 步骤一 绘制一张内存中图片
BufferedImage bufferedImage = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
// 步骤二 图片绘制背景颜色 ---通过绘图对象
Graphics graphics = bufferedImage.getGraphics();// 得到画图对象 --- 画笔
@Controller
public class messageController {
@Autowired
private MessageService messageService;
@RequestMapping("/saveMessage")
public String saveMessage(@RequestParam String messageinfo,HttpServletRequest request,Model model) throws Exception {
Message Message = new Message();
User loginUser = (User) request.getSession().getAttribute("loginUser");
if(loginUser==null){
model.addAttribute("message", "对不起您还没有登录");
return "msg";
}
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Message.setMessage(messageinfo);
Message.setUid(loginUser.getUid());
Message.setMessagedate(sdf.format(new Date()));
messageService.insertMessage(Message);
request.getSession().setAttribute("Message", Message);
return "redirect:/messageList.action?page=1";
}
// 显示留言板全部留言
@RequestMapping({"/messageList","/messages"})
public String messageList(@RequestParam int page, Model model,
HttpServletRequest request) throws Exception {
PageBean<Message> pageBean = messageService.findAllMessageByPage(page);
model.addAttribute("pageBean", pageBean);
return "messageList";
}
}
@Controller
public class ajaxController {
@Autowired
private UserService userService;
@RequestMapping("/loginFindByid")
public void loginFindByid(HttpServletRequest request,
HttpServletResponse response, @RequestParam String username) {
response.setContentType("text/html;charset=UTF-8");
try {
User user = userService.loginFindByid(username);
if (user!=null) {
response.getWriter().write("可以登录");
}else{
response.getWriter().write("不可以登录");
}
} catch (Exception e) {
e.printStackTrace();
}
}
@RequestMapping("/registFindByid")
public void registFindByid(HttpServletRequest request,
HttpServletResponse response, @RequestParam String username) {
response.setContentType("text/html;charset=UTF-8");
try {
User user = userService.loginFindByid(username);
if (user!=null) {
response.getWriter().write("已经被注册");
}else{
response.getWriter().write("可以注册");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}