时间格式处理
package com.fsx.utils;
import org.springframework.core.convert.converter.Converter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @Package: com.fsx.utils
* @ClassName: MyDate
* @Author: 青铜大佬
* @CreateTime: 2021/3/29 19:10
* @Description:
*/
public class DateConvert implements Converter<String, Date> {
Date result = null;
@Override
public Date convert(String source) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
result = sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return result;
}
}
异常处理
package com.fsx.exception;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @Package: com.fsx.exception
* @ClassName: MyException
* @Author: 青铜大佬
* @CreateTime: 2021/3/29 19:10
* @Description:
*/
public class MyException implements HandlerExceptionResolver {
@Override
public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
//记录日志
e.printStackTrace();
//错误信息
String msg = "很抱歉,系统发生故障了,正在抢修中!";
//响应用户的错误提示
ModelAndView mav = new ModelAndView();
//返回错误信息
mav.addObject("msg", msg);
//响应错误提使页面
mav.setViewName("msg");
return mav;
}
}
拦截器处理
package com.fsx.interceptors;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @Package: com.fsx.interceptors
* @ClassName: MyInterceptor
* @Author: 青铜大佬
* @CreateTime: 2021/3/29 19:02
* @Description:
*/
public class MyInterceptor implements HandlerInterceptor {
/**
* 进入方法前被执行,可以用于登录拦截,权限校验
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//判断用户有没有登录
Object object = request.getSession().getAttribute("username");
if (object == null) {
response.sendRedirect(request.getContextPath() + "/user/toLogin.action");
}
//true:放行。false:拦截
return true;
}
/**
* 方法执行之后,返回ModelAndView之前被执行
* 设置页面中公用的参数的
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
}
/**
* 方法执行后执行:
* 处理异常,清资源,记录日志等等
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
}
生成UUID字符主键
package com.fsx.crm.base.utils;
import java.util.UUID;
/**
* @ClassName: UUIDUtils
* @Author: 青铜大佬
* @CreateTime: 2021/4/6 10:45
* @Description: 获取UUID
*/
public class UUIDUtils {
public static String getUUID() {
return UUID.randomUUID().toString().replaceAll("-", "");
}
}
MD5加密算法
package com.fsx.crm.base.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* MD5加密算法
*/
public class MD5Utils {
public static String getMD5(String password) {
try {
// 得到一个信息摘要器
MessageDigest digest = MessageDigest.getInstance("md5");
byte[] result = digest.digest(password.getBytes());
StringBuilder buffer = new StringBuilder();
// 把每一个byte 做一个与运算 0xff;
for (byte b : result) {
// 与运算
int number = b & 0xff;// 加盐
String str = Integer.toHexString(number);
if (str.length() == 1) {
buffer.append("0");
}
buffer.append(str);
}
// 标准的md5加密后的结果
return buffer.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return "";
}
}
}
获取用户真实ip
package com.fsx.crm.base.utils;
import javax.servlet.http.HttpServletRequest;
/**
* @ClassName: Ip
* @Author: 青铜大佬
* @CreateTime: 2021/4/6 16:42
* @Description: 获取用户真实ip
*/
public class IpAddressUtils {
/**
* 获取用户真实IP地址
* request.getRemoteAddr()获取真实IP地址可能不准确
*/
public static String getIpAddress(HttpServletRequest request) {
String ip = request.getHeader("X-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
}