IDEA+Java+SSM+Jsp+Mysql实现Web商品信息管理系统(1),web开发项目实例
//4.使用model设置到前端
model.addAttribute(“pageInfo”,pageInfo);
//5.最后设置返回的jsp
return “showItems”;
}
// 添加商品
@RequestMapping(“/addItems”)
public String addItems(Items items,MultipartFile items_pic,HttpServletRequest request,HttpServletResponse response) throws IllegalStateException, IOException{
//设置图片上传的路径
String path =request.getServletContext().getRealPath(“/upload”);
System.out.println(“上传路径是:” + path);
// 获取图片文件名
String pic_name = items_pic.getOriginalFilename();
System.out.println(“原文件名是:” + pic_name);
// 为了防止上传同名图片导致覆盖文件,引入随机数UUID解决。
String newname = UUID.randomUUID().toString() + pic_name.substring(pic_name.lastIndexOf(“.”));
System.out.println(“新文件名是:” + newname);
// 创建文件流对象picfile
File picFile = new File(path, newname);
System.out.println(“文件流为:” + picFile);
// 如果不存在则创建
if (!picFile.exists()) {
picFile.mkdirs();
}
items_pic.transferTo(picFile);
items.setPic(newname);
// 添加进去
itemsService.add(items);
// 内部转发
return “redirect:queryItems.action”;
}
//删除商品
@RequestMapping(“/del”)
public String del(int id){
itemsService.del(id);
return “redirect:queryItems.action”;
}
//查询单条记录
@RequestMapping(“/findOne”)
public String findOne(Model model,int id){
Items items = itemsService.findOne(id);
model.addAttribute(“items”, items);
//返给更新的方法
return “upd”;
}
//修改数据
@RequestMapping(“/upd”)
public String upd(Items items,MultipartFile items_pic1,HttpServletRequest request) throws IllegalStateException, IOException{
//拿到单条数据
items.setPic(itemsService.findOne(items.getId()).getPic());
// 拿到该条数据的图片路径和名字
String path = request.getServletContext().getRealPath(“/upload”);
String pic_name = items_pic1.getOriginalFilename();
//修改以后做新判断
if (items_pic1 != null && pic_name != null && pic_name.length() > 0) {
String newname = UUID.randomUUID().toString() + pic_name.substring(pic_name.lastIndexOf(“.”));
File picFile = new File(path, newname);
//文件夹不存在就创建
if (!picFile.exists()) {
picFile.mkdirs();
}
items_pic1.transferTo(picFile);
items.setPic(newname);
}
//修改完成以后调用更新方法
itemsService.upd(items);
return “redirect:queryItems.action”;
}
}
UserController
用户登录注册注销逻辑控制层
package com.sjsq.controller;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.sjsq.service.UserService;
import com.sjsq.entity.User;
/**
-
@class_name:UserController
-
@param:6.控制层controller
-
@return: 逻辑控制层
-
@author:sjsq
-
@createtime:2022年2月21日
*/
// 设置默认先映射到(“/user”)路径下
@Controller
@RequestMapping(“/user”)
public class UserController {
@Autowired
private UserService userBiz;
// 设置映射路径和以json格式传送参数
@RequestMapping(value = “/checkLogin”, produces = { “application/json;charset=UTF-8” })
public @ResponseBody User checkLogin(@RequestBody User user, Model model, HttpSession session) {
System.out.println(“=进入登录控制页面。===”);
User user1 = userBiz.CheckLoginAndPwd(user.getUsername(), user.getPassword());
// 登录以后添加到session中
session.setAttribute(“user1”, user1);
session.setAttribute(“test”,“呵呵”);
return user1;
}
// 注销
@RequestMapping(“/LogOut”)
public String LogOut(HttpSession session) {
session.invalidate();
return “redirect:/Login.jsp”;
}
// 注册
@RequestMapping(value = “/register”,produces = { “application/json;charset=UTF-8” })
public String register(User user, Model model) {
userBiz.addUser(user);
model.addAttribute(“msg”, “恭喜您,注册成功”);
return “success”;
}
}
ItemsDaoMapper
商品增删改查接口
package com.sjsq.mapper;
import java.util.List;
import com.sjsq.entity.Items;
/**
*@class_name:ItemsDaoMapper
*@param: 2.ItemsDao
*@return: 商品Dao接口类
*@author:sjsq
*@createtime:2022年2月22日
*/
public interface ItemsDaoMapper {
//1.单条查询-id
public Items findOne(int id);
//2.查询所有商品
public List findAll();
//3.增加
public void add (Items items);
//4.更新
public void upd(Items items);
//5.删除
public void del(int id);
// 搜索某些商品
public List findSome(String name);
}
ItemsDaoMapper.xml
商品增删改查xml文件
select *
from items where id=#{id}
select * from items where 1=1
and name like concat(#{commodityname},‘%’)
select * from items order by id
desc
insert into items
values(default,#{name},#{price},#{detail},#{pic},#{createtime})
update items set
name=#{name},price=#{price},detail=#{detail},pic=#{pic},createtime=#{createtime}
where id =#{id}
delete from items where id=#{id}
UserMapper
用户登录注册接口
package com.sjsq.mapper;
import org.apache.ibatis.annotations.Param;
import com.sjsq.entity.User;
/**
-
@class_name:UserMapper
-
@param: 2.dao层接口
-
@return: 数据持久化
-
@author:sjsq
-
@createtime:2022年2月21日
*/
public interface UserMapper {
// 查询登录账户-用户密码为参数
public User CheckLoginAndPwd(@Param(“username”) String name, @Param(“password”) String pwd);
// 注册用户
public void addUser(User user);
}
UserMapper.xml
用户登录注册xml文件
select*from user where username=#{username} and password=#{password}
insert into user
values(default,#{username},#{password},#{birthday},1,#{address})
fail.jsp
登录失败页面
登录失败提示页用户名或密码错误!!!!
showItems.jsp
商品展示页面
商品后台管理系统-
欢迎来到商品管理系统
欢迎您:
${user1.username }
注销
class=“glyphicon glyphicon-home”> 菜单
商品管理
- 菜单
- 商品信息
-
搜索
名称
开始搜索
添加商品
商品名称 商品价格 商品图片 商品介绍 生产日期 操作 ${item.name } ${item.price }
style=“width: 60px; height: 60px”
src=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / u p l o a d / {pageContext.request.contextPath}/upload/ pageContext.request.contextPath/upload/{item.pic}”>
${item.detail }pattern=“yyyy-MM-dd”/>
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / d e l . a c t i o n ? i d = {pageContext.request.contextPath }/items/del.action?id= pageContext.request.contextPath/items/del.action?id={item.id}”>
删除
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / f i n d O n e . a c t i o n ? i d = {pageContext.request.contextPath }/items/findOne.action?id= pageContext.request.contextPath/items/findOne.action?id={item.id}”>
修改
当前第${pageInfo.pageNum }页,共${pageInfo.pages }页,共${pageInfo.total }条记录数
href=“${pageContext.request.contextPath }/items/queryItems.action?pn=1”>首页
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / q u e r y I t e m s . a c t i o n ? p n = {pageContext.request.contextPath }/items/queryItems.action?pn= pageContext.request.contextPath/items/queryItems.action?pn={pageInfo.pageNum-1}”
aria-label=“Previous”> «
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / q u e r y I t e m s . a c t i o n ? p n = {pageContext.request.contextPath }/items/queryItems.action?pn= pageContext.request.contextPath/items/queryItems.action?pn={nav}”>${nav }
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / q u e r y I t e m s . a c t i o n ? p n = {pageContext.request.contextPath }/items/queryItems.action?pn= pageContext.request.contextPath/items/queryItems.action?pn={nav}”>${nav }
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / q u e r y I t e m s . a c t i o n ? p n = {pageContext.request.contextPath }/items/queryItems.action?pn= pageContext.request.contextPath/items/queryItems.action?pn={pageInfo.pageNum+1}”
aria-label=“Previous”> »
href=“ p a g e C o n t e x t . r e q u e s t . c o n t e x t P a t h / i t e m s / q u e r y I t e m s . a c t i o n ? p n = {pageContext.request.contextPath }/items/queryItems.action?pn= pageContext.request.contextPath/items/queryItems.action?pn={pageInfo.pages}”>末页
aria-labelledby=“myModalLabel” aria-hidden=“true”>
×关闭
添加商品
action=“${pageContext.request.contextPath }/items/addItems.action”
method=“post” id=“form” enctype=“multipart/form-data”>
商品名称:
商品价格:
商品生产日期:
商品介绍:
上传商品图片:
关闭
保存
©2022-2022 XXXX版权所有
success.jsp
注册成功页面
注册成功注册成功
去登录
upd.jsp
修改商品页面
修改页面aria-labelledby=“myModalLabel” aria-hidden=“true”>
×
修改商品
action=“${pageContext.request.contextPath }/items/upd.action”
method=“post” id=“form” enctype=“multipart/form-data”>
商品名称:
商品价格:
生产日期:
商品图片:
商品介绍:
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
资料获取方式:点击蓝色传送门免费获取
:formatDate value=“${items.createtime}”
pattern=“yyyy-MM-dd”/>"
name=“createtime” id=“createtime”>
商品图片:
商品介绍:
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-fdtny8gS-1712111858132)]
[外链图片转存中…(img-fCnPSv6R-1712111858133)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-tRpgsJSN-1712111858133)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
更多面试题
**《350页前端校招面试题精编解析大全》**内容大纲主要包括 HTML,CSS,前端基础,前端核心,前端进阶,移动端开发,计算机基础,算法与数据结构,项目,职业发展等等
资料获取方式:点击蓝色传送门免费获取
[外链图片转存中…(img-T7jpdxMr-1712111858133)]
-