ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-util介绍与开发首页
来源:互联网 发布:linux用户权限文件 编辑:程序博客网 时间:2024/06/08 11:24
ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-util介绍与开发首页
下面把util工具类也分享出来吧,util弄好之后,就可以启动项目到tomcat7试试,如果没问题,就说明ssm框架的整合已经成功一大半了。
包package com.steadyjack.util,建立下面各个工具类用于后期各个组件使用。
CryptographyUtil.java加密解密工具类:
package com.steadyjack.util;import org.apache.shiro.crypto.hash.Md5Hash;/** * title:CryptographyUtil.java * description:加密工具(主要是shiro的md5) * time:2017年1月16日 下午10:55:01 * author:debug-steadyjack */public class CryptographyUtil {/** * title:CryptographyUtil.java * description:Md5加密 * time:2017年1月16日 下午10:55:20 * author:debug-steadyjack * @param str 密码 * @param salt 盐 * @return */public static String md5(String str,String salt){return new Md5Hash(str,salt).toString();}public static void main(String[] args) {String password="linsen";System.out.println("Md5加密:"+CryptographyUtil.md5(password, "debug"));}}
DateUtil.java日期工具类:
package com.steadyjack.util;import java.text.SimpleDateFormat;import java.util.Date;/** * title:DateUtil.java * description:日期处理工具类 * time:2017年1月16日 下午10:38:01 * author:debug-steadyjack */public class DateUtil {/** * title:DateUtil.java * description:日期对象转字符串 * time:2017年1月16日 下午10:40:49 * author:debug-steadyjack * @param date * @param format * @return String */public static String formatDate(Date date,String format){String result=null;try {SimpleDateFormat sdf=new SimpleDateFormat(format);if(date!=null){result=sdf.format(date);}} catch (Exception e) {System.out.println("日期转字符串发生异常: "+e.getMessage());}return result;}/** * title:DateUtil.java * description:字符串转日期对象 * time:2017年1月16日 下午10:43:14 * author:debug-steadyjack * @param str * @param format * @throws Exception */public static Date formatString(String str,String format){Date date=null;try {if(StringUtil.isNotEmpty(str)){SimpleDateFormat sdf=new SimpleDateFormat(format);date=sdf.parse(str);}} catch (Exception e) {System.out.println("字符串转日期出错: "+e.getMessage());}return date;}/** * title:DateUtil.java * description: 获取当前年月日时分秒组成的串:可用于命名图片、文件 * time:2017年1月16日 下午10:48:48 * author:debug-steadyjack * @return String * @throws Exception */public static String getCurrentDateStr()throws Exception{Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddhhmmss");return sdf.format(date);}}
PageUtil.java分页工具类:
package com.steadyjack.util;/** * title:PageUtil.java * description:分页工具类 * time:2017年1月16日 下午10:53:47 * author:debug-steadyjack */public class PageUtil {/** * 同步生成分页代码 (参考网上的) * @param targetUrl 目标地址 * @param totalNum 总记录数 * @param currentPage 当前页 * @param pageSize 每页大小 * @return */public static String genPagination(String targetUrl,long totalNum,int currentPage,int pageSize,String param){long totalPage=totalNum%pageSize==0?totalNum/pageSize:totalNum/pageSize+1;if(totalPage==0){return "未查询到数据";}else{StringBuffer pageCode=new StringBuffer();pageCode.append("<li><a href='"+targetUrl+"?page=1&"+param+"'>首页</a></li>");if(currentPage>1){pageCode.append("<li><a href='"+targetUrl+"?page="+(currentPage-1)+"&"+param+"'>上一页</a></li>");}else{pageCode.append("<li class='disabled'><a href='#'>上一页</a></li>");}for(int i=currentPage-2;i<=currentPage+2;i++){if(i<1||i>totalPage){continue;}if(i==currentPage){pageCode.append("<li class='active'><a href='"+targetUrl+"?page="+i+"&"+param+"'>"+i+"</a></li>");}else{pageCode.append("<li><a href='"+targetUrl+"?page="+i+"&"+param+"'>"+i+"</a></li>");}}if(currentPage<totalPage){pageCode.append("<li><a href='"+targetUrl+"?page="+(currentPage+1)+"&"+param+"'>下一页</a></li>");}else{pageCode.append("<li class='disabled'><a href='#'>下一页</a></li>");}pageCode.append("<li><a href='"+targetUrl+"?page="+totalPage+"&"+param+"'>尾页</a></li>");return pageCode.toString();}}}
ResponseUtil.java响应工具类:
package com.steadyjack.util;import java.io.PrintWriter;import javax.servlet.http.HttpServletResponse;/** * title:ResponseUtil.java * description: 将数据对象Object写回响应流(可用于js异步调用) * time:2017年1月16日 下午10:52:43 * author:debug-steadyjack */public class ResponseUtil {/** * title:ResponseUtil.java * description: 将数据对象Object写回响应流 * time:2017年1月16日 下午10:53:23 * author:debug-steadyjack * @param response * @param o * @throws Exception */public static void write(HttpServletResponse response,Object o)throws Exception{response.setContentType("text/html;charset=utf-8");PrintWriter out=response.getWriter();out.println(o.toString());out.flush();out.close();}}
StringUtil.java字符串工具类:
package com.steadyjack.util;import java.util.ArrayList;import java.util.List;/** * title:StringUtil.java * description:字符串简单处理工具类 * time:2017年1月16日 下午10:44:02 * author:debug-steadyjack */public class StringUtil {/** * title:StringUtil.java * description:判断是否是空 * time:2017年1月16日 下午10:44:21 * author:debug-steadyjack * @param str * @return boolean */public static boolean isEmpty(String str){if(str==null || "".equals(str.trim())){return true;}else{return false;}}/** * title:StringUtil.java * description:判断是否不是空 * time:2017年1月16日 下午10:44:44 * author:debug-steadyjack * @param str * @return boolean */public static boolean isNotEmpty(String str){if((str!=null)&&!"".equals(str.trim())){return true;}else{return false;}}/** * title:StringUtil.java * description: 格式化模糊查询 * time:2017年1月16日 下午10:45:09 * author:debug-steadyjack * @param str * @return String */public static String formatLike(String str){if(isNotEmpty(str)){return "%"+str+"%";}else{return null;}}/** * title:StringUtil.java * description:过滤掉集合里的空格 * time:2017年1月16日 下午10:45:34 * author:debug-steadyjack * @param list * @return List<String> */public static List<String> filterWhite(List<String> list){List<String> resultList=new ArrayList<String>();for(String str:list){if(isNotEmpty(str)){resultList.add(str);}}return resultList;}}
WebFileOperationUtil.java web环境下对于一些文件如百度编辑器上传的图片、独立上传的文件进行处理:
package com.steadyjack.util;import javax.servlet.http.HttpServletRequest;import org.jsoup.Jsoup;import org.jsoup.nodes.Document;import org.jsoup.nodes.Element;import org.jsoup.select.Elements;public class WebFileOperationUtil {/** * title:WebFileOperationUtil.java * description:将百度编辑器的内容的图片移动到指定的位置,并将新的位置替换内容中对于的旧位置 * time:2017年2月7日 下午7:17:35 * author:debug-steadyjack * @param request * @param content * @return */public static String copyImageInUeditor(HttpServletRequest request,String content){if (StringUtil.isNotEmpty(content)) {Document doc=Jsoup.parse(content);Elements imageList=doc.select("img"); if (imageList!=null && imageList.size()>0) {for(int i=0;i<imageList.size();i++){Element image=imageList.get(i);String oldImage=image.toString();System.out.println(oldImage);String charIndex="/temporary";int index=oldImage.indexOf(charIndex);if (index>0) {String srcImage=oldImage.substring(index);String secIndex="\"";String realImagePos=srcImage.substring(0,srcImage.indexOf(secIndex));String folder="ueditor";String newImagePos=WebFileUtil.copyFileForUeditor(request, realImagePos, folder);content = content.replace(realImagePos, newImagePos);}}}}return content;}/** * title:WebFileOperationUtil.java * description:删除百度编辑器内容的图片 * time:2017年2月7日 下午9:01:23 * author:debug-steadyjack * @param request * @param content * @throws Exception */public static void deleteImagesInUeditor(HttpServletRequest request,String content) throws Exception{if (StringUtil.isNotEmpty(content)) {Document doc=Jsoup.parse(content);Elements imageList=doc.select("img"); if (imageList!=null && imageList.size()>0) {for(int i=0;i<imageList.size();i++){Element image=imageList.get(i);String oldImage=image.toString();//图片src必定以 " 开始,以 " 结束String charIndex="\"";int index=oldImage.indexOf(charIndex);if (index>0) {String srcImage=oldImage.substring(index+1);String delImagePos=srcImage.substring(0,srcImage.indexOf(charIndex));System.out.println(delImagePos);WebFileUtil.deleteFilePath(WebFileUtil.getSystemRootPath(request)+delImagePos);}}}}}public static void main(String[] args) {String image="img src=\"/temporary/2017-02-06/image/1486394487364095169.jpg\"";String str="/temporary/2017-02-06/image/1486394487364095169.jpg"; //51String charIndex="/temporary";int index=image.indexOf(charIndex);System.out.println(index);String newStr=image.substring(index, str.length()+index);System.out.println(newStr);}}
WebFileUtil.java文件操作工具类:
package com.steadyjack.util;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.URL;import java.net.URLConnection;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.util.FileCopyUtils;/** * title:WebFileUtil.java * description:文件操作(包括网络上的文件)工具类 * time:2017年1月22日 * 下午9:41:57 * author:debug-steadyjack */public class WebFileUtil {/** * title:WebFileUtil.java * description:获取web运行时项目的根路径 * time:2017年1月22日 下午10:00:08 * author:debug-steadyjack * @param request * @return */public static String getSystemRootPath(HttpServletRequest request){String rootPath=request.getServletContext().getRealPath("/");//request.getContextPath();return rootPath;}/** * title:WebFileUtil.java * description:下载文件(包括网络文件) * time:2017年1月22日 下午9:59:24 * author:debug-steadyjack * @param request * @param response * @param url 文件路径 * @param fileName 文件名 */public static void downloadFile(HttpServletRequest request,HttpServletResponse response, String url,String fileName) {String root = getSystemRootPath(request);//用给定的fileName与url的后缀名拼成一新的字符串作为新的文件名fileName = fileName + url.substring(url.lastIndexOf("."));OutputStream os = null;InputStream fis = null;try {//解决中文 文件名问题fileName = new String(fileName.getBytes(), "iso8859-1");response.setContentType("application/octet-stream");response.addHeader("Content-Disposition", "attachment;filename=\""+ fileName + "\"");os=response.getOutputStream();if (url.startsWith("http:")) {URL tmpURL = new URL(url);URLConnection conn = tmpURL.openConnection();fis = conn.getInputStream();} else {fis = new FileInputStream(new File(root + url));}byte[] b = new byte[1024];int i = 0;while ((i = fis.read(b)) > 0) {os.write(b, 0, i);}os.flush();} catch (Exception e) {System.out.println("下载文件发生异常: "+e.getMessage());} finally{try {os.close();fis.close();} catch (IOException e) {e.printStackTrace();}}}/** * title:WebFileUtil.java * description:创建文件夹 * time:2017年2月6日 下午10:50:17 * author:debug-steadyjack * @param dFile */ public static void createFold(File file) {if (!file.exists()) file.mkdirs();} /** * title:WebFileUtil.java * description:复制百度编辑器中的图片到指定的文件夹下,并返回图片存储的实际路径 * time:2017年2月6日 下午10:58:58 * author:debug-steadyjack * @param request * @param srcPath * @param floder * @return */ public static String copyFileForUeditor(HttpServletRequest request,String srcPath, String folder){ String newFolder=""; String fileName=""; try {File oldFile=new File(getSystemRootPath(request)+srcPath);SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");newFolder="/files/"+folder+"/"+sdf.format(new Date())+"/";String newFilePath=getSystemRootPath(request)+newFolder;createFold(new File(newFilePath));fileName=oldFile.getName();File newFile=new File(newFilePath+fileName);FileCopyUtils.copy(oldFile, newFile);//FileUtils.copyFile(oldFile, saveFile);} catch (Exception e) {e.printStackTrace();}return newFolder+fileName; } /** * title:WebFileUtil.java * description:删除给定路径下的文件(包括单独的文件;文件夹) * time:2017年2月6日 下午11:02:12 * author:debug-steadyjack * @param path * @return * @throws Exception */ public static boolean deleteFilePath(String path) throws Exception { try {File file = new File(path);// 当且仅当此抽象路径名表示的文件存在且 是一个目录时,返回 trueif(!file.isDirectory()){file.delete();}else if(file.isDirectory()){String[] filelist = file.list();for(int i = 0; i < filelist.length; i++) {File delfile = new File(path + "/" + filelist[i]);if (!delfile.isDirectory()) {delfile.delete();} else if (delfile.isDirectory()) {deleteFilePath(path + "/" + filelist[i]);}}file.delete();}} catch (Exception e) {}return true; } }
就此以及介绍完util工具类的开发了。具体代码的意思我已经贴出注释了--其实都很基础啦,不懂的看一看Jdk文档就知道了!多动手,多尝试即可。
启动项目。。。。没报错就可以了!
下面就介绍一下前端首页的开发,先看一下效果图吧:
然后,点击某一篇博客,查看详情:
发表评论以及点击右边那些分类就不截图了。最后截一个关于lucene全文搜索实现的效果图:
好了,总体上就介绍到这里吧!
如果有相关问题:如想找我付费开发其他功能,讨论其中相关问题等等,可以来以下两群找我,我叫debug!
Java开源技术交流:583522159 鏖战八方群:391619659
阅读全文
0 0
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-util介绍与开发首页
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-dao与service层等组件整合
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-前端页面的开发
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-后端功能开发
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-整合各大框架
- Mybatis3+Spring4+SpringMVC4 整合
- Mybatis3+Spring4+SpringMVC4 整合
- Mybatis3+Spring4+SpringMVC4 整合
- Mybatis3+Spring4+SpringMVC4 整合
- Mybatis3+Spring4+SpringMVC4 整合
- Mybatis3+Spring4+SpringMVC4 整合
- Mybatis3+Spring4+SpringMVC4 整合
- SSM整合最新版,spring4.2,springmvc4.2,mybatis3.2整合
- SSM整合最新版,spring4.2,springmvc4.2,mybatis3.2整合
- 【ssm整合教程】spring4.0.2+springMVC4.0.2+mybatis3.2.6集成
- Spring4+SpringMVC4+MyBatis3.2整合
- Spring4+SpringMVC4+Mybatis3框架整合
- Redis学习笔记10--Redis主从复制
- 运用shape绘制图形
- PHP之mysqli的使用
- Fliter-----补6-16
- Servlet&JSP 第八章 自定义标签
- ssm(springmvc4+spring4+mybatis3)整合实战-个人博客系统-util介绍与开发首页
- vim命令
- Leetcode 8 String to Integer (atoi)
- 解读JavaScript之this
- Linux内核:关于中断你需要知道的【转】
- Windows服务编程之服务程序
- #Unity坐标系,向量,四元数(一)
- mysql:cannnot create file navicatdesignquery.sql.bak 系统找不到指定路径
- android 图片转换