




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JavaWeb期末项设计业务逻辑与实现1.1业务逻辑设计与实现业务逻辑层主要由控制层实现,需要实现的需求:登陆注册:RegisterController:package com.dpqq.springboot.web.controller;import com.dpqq.springboot.web.Entity.User;import com.dpqq.springboot.web.repository.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springf
2、ramework.stereotype.Controller;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestParam;import java.util.Map;Controllerpublic class RegisterController AutowiredUserRepository userRepository;PostMapping(value = /register)public String regi
3、ster(RequestParam(name) String name, String gender,RequestParam(phone) String phone,RequestParam(password) String password,Map map)/判断数据合法性if(name.length()4 | name.isEmpty()map.put(warning1, 4);if(password.length()16 | password.length()8)map.put(warning2, 816);if(phone.length()!=11)map.put(warning3,
4、 11);if(userRepository.existsByPhone(phone)map.put(warning3, );if(!isNumeric(phone)map.put(warning3, );if(gender=null)map.put(warning4, );合法则设置户信息并保存数据库if(map.isEmpty()/User user = new User();user.setPassword(password);user.setPhone(phone);user.setName(name);user.setGender(gender);userRepository.sav
5、e(user);return login;/不合法返回注册页elsereturn register;/判断字符串是否是数字函数public static boolean isNumeric(String str)for (int i =0;istr.length();i+)if(!Character.isDigit(str.charAt(i)return false;return true;package com.dpqq.springboot.web.controller;import com.dpqq.springboot.web.Entity.User;import com.dpqq.s
6、pringboot.web.repository.CardRepository;import com.dpqq.springboot.web.repository.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bi
7、nd.annotation.RequestParam;import javax.servlet.http.HttpSession;import java.util.Map;Controllerpublic class LoginController AutowiredUserRepository userRepository;AutowiredCardRepository cardRepository;PostMapping(value = /user/login)public String login(RequestParam(phone) String phone,RequestParam
8、(password) String password,Map map, HttpSession session)/判断数据合法性if(password.length()16 | password.length()8)map.put(warning2, 816);if(phone.length()!=11)map.put(warning1, 11);/数据合法进步判断,不合法返回登录页if(map.isEmpty() 判断是否存在机号密码匹配,存在即登陆可以登陆重定向页,不存在返回登录页if (userRepository.existsByPhoneAndPassword(phone, pass
9、word) User user = userRepository.findByPhone(phone);/session中存放户信息session.setAttribute(loginUser,user);return redirect:/; else map.put(msg, );return login;elsereturn login;办卡:CardAddController:package com.dpqq.springboot.web.controller;import com.dpqq.springboot.web.Entity.Card;import com.dpqq.sprin
10、gboot.web.Entity.User;import com.dpqq.springboot.web.repository.CardRepository;import com.dpqq.springboot.web.repository.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.PostMa
11、pping;import org.springframework.web.bind.annotation.RequestParam;import javax.servlet.http.HttpSession;import java.util.Date;import java.util.Map;import java.util.UUID;Controller / 表这是个控制器类public class CardAddController Autowiredprivate CardRepository cardRepository;Autowiredprivate UserRepository
12、userRepository;/ RequestMapping(/ method = RequestMethod.POST/)PostMapping(value = /CardAdd)/ 接受前台发送的数据public String CardAdd(RequestParam(cardpassword) String cardpassword ,RequestParam(phone) String phone ,RequestParam(password) String password,Map map ,HttpSession session)/判断数据合法性if(cardpassword.l
13、ength()16 | cardpassword.length()16 | password.length()8)map.put(warning3, 816);if(phone.length()!=11)map.put(warning2, 11);/合法则再数据库增加卡信息if(map.isEmpty()通过输的机号和密码判断是否存在,否则返回申请页if(userRepository.existsByPhoneAndPassword(phone, password)User user=new User();user=userRepository.findByPhone(phone);Card
14、card=new Card();String CardNum=getUUID(); / 16位卡号/设置户和卡的信息,最后保存进数据库user.setCard(CardNum);card.setCardNum(CardNum);card.setCardpassword(cardpassword);card.setDate(new Date();card.setBalance(0);cardRepository.save(card);userRepository.save(user);/session中User loginUser = (User)session.getAttribute(log
15、inUser);Card loginUserCard=cardRepository.findByCardNum(loginUser.getCard();session.setAttribute(loginUserCard,loginUserCard);map.put(CardNum,CardNum);return ApplyCardSuccess;elsemap.put(msg, );return CardApply;else return CardApply;/成/ 16位唯性的订单号public static String getUUID()/随机成位整数int random = (int
16、) (Math.random()*9+1);String valueOf = String.valueOf(random);/uuidhashCode值int hashCode = UUID.randomUUID().toString().hashCode();/可能为负数if(hashCode0)hashCode = -hashCode;String value = valueOf + String.format(%015d, hashCode);return value;存钱savemoneyController:package com.dpqq.springboot.web.contro
17、ller;import com.dpqq.springboot.web.Entity.Card;import com.dpqq.springboot.web.Entity.User;import com.dpqq.springboot.web.repository.CardRepository;import com.dpqq.springboot.web.repository.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereo
18、type.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpSession;import java.util.Map;Controllerpublic class SaveMoneyController AutowiredUserRepository userRepository;AutowiredCardRepository ca
19、rdRepository;GetMapping(value = savemoney)public String savemoney(HttpSession session, Map map)/session中是否有户信息,没有则不能存钱,返回页if(session.getAttribute(loginUser)=null)return /;有户信息进步判断有没有办卡else取出户信息User user=(User)session.getAttribute(loginUser);判断办卡与否,没办卡跳转办卡页,否则进存钱页if(user.getCard()=null)map.put(msg, )
20、; return CardApply;else Card card=cardRepository.findByCardNum(user.getCard();session.setAttribute(loginUserCard,card);return savemoney ;PostMapping(value = /Tosavemoney)public String savemoney( String balance,Map map,HttpSession session)/判断数据合法性if(balance.isEmpty()map.put(warning, ); if(!isNumeric(
21、balance)map.put(warning, ); if(map.isEmpty()/session中取登陆后的户信息,所以需判断数据库中是否存在要素,取出户信息后直接与输的账户卡号进转账操作User user=(User)session.getAttribute(loginUser);获取户信息中的卡号/Card card=cardRepository.findByCardNum(user.getCard();设置卡的额card.setBalance(card.getBalance()+Integer.parseInt(balance);保存进数据库,更新额cardRepository.
22、save(card);return savemoneySuccess;return savemoneySuccess;/数据不合法返回存钱页else return savemoney;/判断字符串是否是数字函数public static boolean isNumeric(String str)for (int i =0;istr.length();i+)if(!Character.isDigit(str.charAt(i)return false;return true;转账TranferAccountController:package com.dpqq.springboot.web.co
23、ntroller;import com.dpqq.springboot.web.Entity.Card;import com.dpqq.springboot.web.Entity.User;import com.dpqq.springboot.web.repository.CardRepository;import com.dpqq.springboot.web.repository.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.st
24、ereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpSession;import java.util.Map;Controllerpublic class SaveMoneyController AutowiredUserRepository userRepository;AutowiredCardRepositor
25、y cardRepository;GetMapping(value = savemoney)public String savemoney(HttpSession session, Map map)/session中是否有户信息,没有则不能存钱,返回页if(session.getAttribute(loginUser)=null)return /;有户信息进步判断有没有办卡else取出户信息User user=(User)session.getAttribute(loginUser);判断办卡与否,没办卡跳转办卡页,否则进存钱页if(user.getCard()=null)map.put(ms
26、g, ); return CardApply;else Card card=cardRepository.findByCardNum(user.getCard();session.setAttribute(loginUserCard,card);return savemoney ;PostMapping(value = /Tosavemoney)public String savemoney( String balance,Map map,HttpSession session)/判断数据合法性if(balance.isEmpty()map.put(warning, ); if(!isNume
27、ric(balance)map.put(warning, ); if(map.isEmpty()/session中取登陆后的户信息,所以需判断数据库中是否存在要素,取出户信息后直接与输的账户卡号进转账操作User user=(User)session.getAttribute(loginUser);获取户信息中的卡号/Card card=cardRepository.findByCardNum(user.getCard();设置卡的额card.setBalance(card.getBalance()+Integer.parseInt(balance);保存进数据库,更新额cardReposit
28、ory.save(card);return savemoneySuccess;/数据不合法返回存钱页else return savemoney;/判断字符串是否是数字函数public static boolean isNumeric(String str)for (int i =0;istr.length();i+)if(!Character.isDigit(str.charAt(i)return false;return true;销户CancellationController:package com.dpqq.springboot.web.controller;import com.dp
29、qq.springboot.web.Entity.Card;import com.dpqq.springboot.web.Entity.User;import com.dpqq.springboot.web.repository.CardRepository;import com.dpqq.springboot.web.repository.UserRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;im
30、port org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import javax.servlet.http.HttpSession;import java.util.Map;Controllerpublic class SaveMoneyController AutowiredUserRepository userRepository;AutowiredCardRepository cardRepository;GetMa
31、pping(value = savemoney)public String savemoney(HttpSession session, Map map)/session中是否有户信息,没有则不能存钱,返回页if(session.getAttribute(loginUser)=null)return /;if(session.getAttribute(loginUser)=null)return /;/有户信息进步判断有没有办卡else取出户信息User user=(User)session.getAttribute(loginUser);判断办卡与否,没办卡跳转办卡页,否则进存钱页if(us
32、er.getCard()=null)map.put(msg, ); return CardApply;else Card card=cardRepository.findByCardNum(user.getCard();session.setAttribute(loginUserCard,card);return savemoney ;PostMapping(value = /Tosavemoney)public String savemoney( String balance,Map map,HttpSession session)/判断数据合法性if(balance.isEmpty()ma
33、p.put(warning, ); if(!isNumeric(balance)map.put(warning, ); if(map.isEmpty()/session中取登陆后的户信息,所以需判断数据库中是否存在要素,取出户信息后直接与输的账户卡号进转账操作User user=(User)session.getAttribute(loginUser);获取户信息中的卡号/Card card=cardRepository.findByCardNum(user.getCard();设置卡的额card.setBalance(card.getBalance()+Integer.parseInt(ba
34、lance);保存进数据库,更新额cardRepository.save(card);return savemoneySuccess;/数据不合法返回存钱页else return savemoney;/判断字符串是否是数字函数public static boolean isNumeric(String str)for (int i =0;istr.length();i+)if(!Character.isDigit(str.charAt(i)return false;return true;1.2表现层设计与实现表现层thtmeleaf模板引擎,导bootstrap的 webjars,使其中的c
35、ss:1.3项难点及解决案问题报错1:JPARepository中动定义查询法的驼峰命名不是分理解深刻,只知道单词中间写会变成下划线加写,当我有个字段中间有写单词时,编写JPARepository定义法时报错。解决案:我概知道错误,就把实体类中字段改成写,再把数据库表删除,重新启动则运通过。问题难点2:编写MvcConfig配置类时,在上看到的时配置WebMvcConfigAdapter,但是我像实现这个接是显法弃。解决案:尝试webmvcConfig实现,发现这个与WebMvcConfigAdapter可实现的法致,得到解决。1.4典型代码段与设计过程配置拦截器:package ponent
36、;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/配置拦截器,重写拦截器必要法public class ApplyCardHandlerInterceptor implements HandlerInterceptorOverride /重写法
37、/ Boolean 通与不通public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception /Session“loginUser”userObject user=request.getSession().getAttribute(loginUser);判断取值是否为空,为空则表没有登陆,跳转回登录页,否则表登陆了,放if(user = null)request.setAttribute(msg, );request.getReque
38、stDispatcher(/login).forward(request,response);return false;elsereturn true;Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws ExceptionOverridepublic void afterCompletion(HttpServletRequest request, HttpServletR
39、esponse response, Object handler, Exception ex) throws Exception MvcConfig添加拦截器:package ponent;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/配置拦
40、截器,重写拦截器必要法public class ApplyCardHandlerInterceptor implements HandlerInterceptorOverride /重写法/ Boolean 通与不通public boolean preHandle(HttpServletRequest request,HttpServletResponse response,Object handler) throws Exception /Session“loginUser”userObject user=request.getSession().getAttribute(loginUser
41、);判断取值是否为空,为空则表没有登陆,跳转回登录页,否则表登陆了,放if(user = null)request.setAttribute(msg, );request.getRequestDispatcher(/login).forward(request,response);return false;elsereturn true;Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView
42、) throws ExceptionOverridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception DuridConfig配置durid数据源:package com.dpqq.springboot.web.config;import com.alibaba.druid.pool.DruidDataSource;import com.alibaba.druid.support.h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《智谋物流管理》课件
- 铁道机车专业教学郑州铁路单绍平35课件
- 铁道机车专业教学郑州铁路张中央70课件
- 天津海运职业于祯妮GroupTouristsBoardin
- 铁道概论授课崔桂兰64课件
- 铁路信号与通信设备接发列车工作90课件
- 中医文献课件
- 个人介绍课件
- 设备融资租赁合同样本
- 多式联运货物运输保险合同主要条款
- 个人理财-形考作业4(第8-9章)-国开(ZJ)-参考资料
- 2024年江西省职业院校技能大赛(研学旅行赛项)备考试题库(含答案)
- 人教版九年级数学复习教案全册
- 【建筑专业】16J914-1公用建筑卫生间(完整)
- 小学数学高效课堂教学策略研究中期报告
- DL∕T 1654-2016 磷酸酯抗燃油氧化安定性和腐蚀性试验方法
- DL∕T 1098-2016 间隔捧技术条件和试验方法
- 脑钠肽BNP幻灯片
- 甲状旁腺功能减亢进的护理
- (高清版)JTG 3370.1-2018 公路隧道设计规范 第一册 土建工程
- 《生理学》-血液循环-选择题(A型)
评论
0/150
提交评论