Java Web开发实验课设大作业:实验室设备管理系统、图书管理系统

实验资源、课设报告和源码请加QQ:2309636835

 一  实验目的

通过联合使用本学期所学理论知识,进一步掌握和理解MVC模型结构,并掌握常用实用开发技术的用法。

二  实验内容与要求

实现基于springMVC的实验室设备管理系统。

2.1 整体结构需求

实验室设备管理系统分为用户模式(即前台端)和管理员模式(即后台端),网站采取会员制,即登录后才能查看内容,故查看网页除登录、注册页外内容均需进行登录验证(用过滤器实现)。无账号用户可以由用户登录页进入注册页注册,管理员只能大后端添加,无法注册。

用户模式(即前台端)可以根据设备名称、分类和厂家查询设备并外借设备,用户可以查看个人信息,用户还可以查看本人目前的在借设备并进行归还。在用户进行外借和归还操作后,设备信息中设备余量和设备外借数量要能进行相应的变化。

管理员模式(即后台端)可以进行设备管理、外借管理和用户管理。设备管理可以查看、修改、增加设备信息。外借管理可以查看所有用户的外借信息,其中包括已归还的设备的外借信息。用户管理可以查看所有用户的个人信息。

2.2 环境需求

CSS框架:bootstrap

所用设计模式: SpringMVC

语言: Java + HTML

数据库: MySQL

Web服务器: Tomcat

Action: Controller

View: Jsp

2.3 用户模式需求

......

2.4 管理员模式需求

......

三  实现思想及程序说明

3.1 系统总体结构设计

......

3.3.1 用户注册功能

用户在首页点击注册,进入UserRegister.jsp页面,输入相应信息后点击注册发起user/userRegister请求,交由UserController.java处理,注册成功后也可以进入系统。对于用户头像的存储,这里使用的方法是在数据库中存储图像的文件名,并将用户头像图像文件上传至服务器路径:Tomcat7.0\webapps\Library\Avatar下。

UserController.java实现用户注册功能的代码如下:

//用户注册请求 注册成功后跳转至main页面

@RequestMapping("/userRegister")

public String addUser(User user,HttpSession session,Model model,HttpServletRequest request) throws Exception{

//加入用户头像上传功能

System.out.println("接收前端==="+user);

//保存数据库的路径

String sqlPath = null;

//定义文件保存的本地路径

//String localPath="D:\\File\\";

String localPath = request.getServletContext().getRealPath("/Avatar");

//定义 文件名

String filename = null;

if(!user.getAvatar_file().isEmpty()){

//生成uuid作为文件名称

String uuid = UUID.randomUUID().toString().replaceAll("-", "");

//获得文件类型(可以判断如果不是图片 禁止上传)

String contentType = user.getAvatar_file().getContentType();

//获得文件后缀名

String suffixName = contentType.substring(contentType.indexOf("/")+1);

//获得 文件名

filename = uuid+"."+suffixName;

//文件保存路径

String path = "/AvatarImage" + filename;

user.getAvatar_file().transferTo(new File(localPath+path));

}

//把图片的相对路径保存到数据库

sqlPath = "AvatarImage"+filename;

System.out.println("用户传入头像的路径"+sqlPath);   //打印测试

user.setUser_avatar(sqlPath);

//添加新用户 至数据库

int count = userService.insertUser(user);

if(count > 0){

//插入成功

System.out.println("插入用户成功==="+user);

session.setAttribute("user_id", user.getUser_id());

model.addAttribute("user_name", user.getUser_name());

return "User/UserMain";

}

System.out.println("插入用户失败==="+user);

String errorMsg = "用户注册失败";

model.addAttribute("msg", errorMsg);

return "tip";

}

3.3.2 用户登录功能

用户在UserLogin.jsp页面输入账号以及密码发起user/userLogin请求,交由UserController.java进行处理。如果与数据库中的数据匹配成功,则用户登入成功进入页面jsp/User/UserMain.jsp

UserController.java实现用户登录功能的代码如下:

//用户登录请求

@RequestMapping("/userLogin")

public String userLogin(HttpSession session,int user_id,String user_password,Model model) throws Exception{

//根据传入的 id 和 密码 在数据库中进行查询

User user = userService.selectUserByIDPW(user_id, user_password);

if(user != null){

System.out.println("接收前端用户id==="+user_id);

session.setAttribute("user_id", user.getUser_id());

model.addAttribute("user_name", user.getUser_name());

return "User/UserMain";

}

String errorMsg = "用户登录失败";

model.addAttribute("msg", errorMsg);

return "tip";

}

3.3.3 显示个人信息

UserMain.jsp页面中设置超链接请求:<a href="user/userInfo" target="iframeMainRight">个人中心</a>,由UserController.java接收,并将查询结果返回至视图User/UserInfo.jsp

UserController.java显示个人信息的功能实现代码如下:

//用户请求账户详情信息

@RequestMapping("/userInfo")

public String userInfo(HttpSession session,Model model){

int user_id = (int)session.getAttribute("user_id");

User user = null;

user = userService.selectUserByID(user_id);

if(user != null){

System.out.println("查找到用户==="+user);

model.addAttribute("userInfo", user);

}

return "User/UserInfo";

}

3.3.4 设备查询功能

用户可以根据设备的名称、厂家、种类对设备信息进行查询。在UserAllBook.jsp页面设计三个查询框,分别用于输入名称、厂家、种类,产生请求交予BookController.java处理,控制器将查询的结果放在Model对象中再返回给UserAllBook.jsp页面用于显示。

UserAllBook.jsp主要代码如下:

<div class="search">

   <div class="SearchByName">

     <form class="form-search" action="book/selectBookByName" method="post">

   <input type="text" class="input-medium search-query" placeholder="输入查询设备的名称" name="book_name">

   <button type="submit" class="btn">Search</button>

</form>

</div>

<div class="SearchByType">

<form class="form-search" action="book/selectBookByType" method="post">

   <input type="text" class="input-medium search-query" placeholder="输入查询设备的类型" name="book_type">

   <button type="submit" class="btn">Search</button>

</form>

</div>

<div class="SearchByWriter">

<form class="form-search" action="book/selectBookByWriter" method="post">

   <input type="text" class="input-medium search-query" placeholder="输入查询设备的厂家" name="book_writer">

   <button type="submit" class="btn">Search</button>

</form>

</div>

  </div>

......

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值