8.controller的实现
发表于:2017-06-24 10:15:51 分类:博客源码 阅读:802次
写的时候太懒了,没有规划。。。
把所有的功能加入到了这两个控制器里,比较难看。
1.UserController
package top.ersredma.blog.controller; import org.apache.commons.io.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; import top.ersredma.blog.bean.Blog; import top.ersredma.blog.bean.Essay; import top.ersredma.blog.bean.KeyWord; import top.ersredma.blog.bean.User; import top.ersredma.blog.service.BlogService; import top.ersredma.blog.service.UserService; import top.ersredma.blog.utils.AppUtils; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.*; import java.util.*; /** * Created by ersredma on 2017/6/13. */ @Controller @RequestMapping("/") public class UserController { @Autowired UserService userService; @Autowired BlogService blogService; @RequestMapping("/home") public String home(HttpServletRequest request){ LinkedHashMap<String,List<Essay>> top10=blogService.findTop10KeyWord(); request.setAttribute("essayMap",top10); List<Essay> hotList= blogService.findHotTop(); List<Essay> newList= blogService.findNewTop(); List<Essay> likeList= blogService.findLikeTop(); request.setAttribute("hotList",hotList); request.setAttribute("newList",newList); request.setAttribute("likeList",likeList); return "mainhome"; } @RequestMapping("/blog") public String tohome(){ return "mainhome"; } @RequestMapping("/registerUI") public String registerUI(){ return "user/register"; } @RequestMapping("/mng/myInfoUI") public String myInfoUI(HttpSession session){ User user=(User)session.getAttribute("USER"); if(user==null){ return "redirect:/loginUI"; } return "user/myInfo"; } @RequestMapping("/loginUI") public String loginUI(){ return "user/login"; } @RequestMapping(value = "/login",produces = "application/json;charset=UTF-8") @ResponseBody public Map<String,Object> login(User user, HttpSession session, HttpServletRequest request, HttpServletResponse response){ // 一次验证码验证 String checkcode = (String) session.getAttribute("key"); // 清空获取过的验证码 session.removeAttribute("key"); boolean success=false; String msg=""; String url=""; if (!checkcode.equals(user.getCode())) { // 输入不一致 msg="验证码输入错误,请重新输入!"; url="/loginUI"; } else { //加密密码 AppUtils.enPassW(user); //检查用户邮箱与密码是否匹配 User temp=userService.findUserByEmailAndPassword(user.getEmail(),user.getPassword()); if(temp!=null) { success=true; Blog blog=blogService.findBlogByUser(temp); if(blog==null){ url="/mng/configUI"; }else{ temp.setBlog(blog); url="/blog/"+blog.getUrl(); } //把用户写入Session,并返回博客配置页面 session.setAttribute("USER", temp); msg="登陆成功!"; }else{ msg="用户名或密码错误,请重新输入!"; url="/loginUI"; } } Map<String, Object> map = new HashMap<>(); map.put("success",success); map.put("msg",msg); map.put("url",url); return map; } @RequestMapping(value = "/register",produces = "application/json;charset=UTF-8") @ResponseBody public Map<String,Object> register(User user, String code, HttpSession session, HttpServletRequest request){ // 一次验证码验证 String checkcode = (String) session.getAttribute("key"); // 清空获取过的验证码 session.removeAttribute("key"); boolean success=false; String msg=""; String url=""; if (!checkcode.equals(code)) { // 输入不一致 msg="验证码输入错误,请重新输入!"; url="/registerUI"; } else { //检查邮箱是否可用 User temp=userService.findUserByEmail(user.getEmail()); if(temp==null) { //加密密码 AppUtils.enPassW(user); userService.createUser(user); success=true; msg="注册成功,去登陆!"; url="/loginUI"; }else{ msg="该邮箱已注册,请重新输入!"; url="/registerUI"; } } Map<String, Object> map = new HashMap<>(); map.put("success",success); map.put("msg",msg); map.put("url",url); return map; } @RequestMapping(value = "/mng/editMyInfo",produces = "application/json;charset=UTF-8") @ResponseBody public Map<String,Object> editMyInfo(HttpSession session, User user,HttpServletRequest request){ boolean success=false; String msg=""; String url=""; User LoginUser=(User)session.getAttribute("USER"); if(user!=null){ user.setId(LoginUser.getId()); if(user.getImg()!=null){ user.setImg(user.getImg().substring(user.getImg().indexOf("/upload"))); if(user.getImg().equals(LoginUser.getImg())){ user.setImg(null); }else{ if(LoginUser.getImg()!=null) deleteFileForUrl(LoginUser.getImg(),request); } } int rs=userService.editUser(user); if(rs==1){ success=true; msg="编辑成功!"; url="/mng/myInfoUI"; session.setAttribute("USER",userService.findUserByEmail(LoginUser.getEmail())); }else{ msg="编辑失败,请重试!"; url="/mng/myInfoUI"; } } Map<String, Object> map = new HashMap<>(); map.put("success",success); map.put("msg",msg); map.put("url",url); return map; } private void deleteFileForUrl(String url,HttpServletRequest request) { String filePath = request.getServletContext() .getRealPath("/"); File file=new File(filePath+url); file.delete(); } @RequestMapping(value = "/saveFile") @ResponseBody public synchronized String saveOrUpdate(HttpServletRequest request,HttpSession session){ User user=(User) session.getAttribute("USER"); String type = request.getParameter("type"); MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = multipartRequest.getFile("file");// 获取上传文件名 String mainPath="upload/"; String filePath = request.getServletContext() .getRealPath(mainPath); String fileName = UUID.randomUUID().toString() .replaceAll("-", "") + "."+type; String path=filePath+"/user/"+user.getId()+"/"+fileName; System.out.println(path); // 复制文件 try { InputStreamToFile(file.getInputStream(),path); } catch (IOException e) { e.printStackTrace(); } return "/"+mainPath+"user/"+user.getId()+"/"+fileName; } private void InputStreamToFile(InputStream in,String filePath){ try { File f=new File(filePath); //判断目标文件所在的目录是否存在 if(!f.getParentFile().exists()) { //如果目标文件所在的目录不存在,则创建父目录 System.out.println("目标文件所在目录不存在,准备创建它!"); if(!f.getParentFile().mkdirs()) { System.out.println("创建目标文件所在目录失败!"); } } if (f.createNewFile()) { System.out.println("创建成功!"); } else { System.out.println("创建失败!"); } OutputStream out=new FileOutputStream(f); byte buf[]=new byte[1024]; int len; while((len=in.read(buf))>0) out.write(buf,0,len); out.close(); in.close(); } catch (IOException e){} } }
关键词:blog源码,控制器