Spring+SpringMVC+mybatis+redis(三)
来源:互联网 发布:贝克汉姆 知乎 编辑:程序博客网 时间:2024/06/11 23:32
redis模板类(RedisClientTemplate)方法有点多,字数到了。新建一章
其实最重要的都贴出来完了。
10.ParameterMap(一个参数拦截器,我觉得挺好用的)
package com.lrs.util;import java.io.UnsupportedEncodingException;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import javax.servlet.http.HttpServletRequest;/** * 拦截所有参数 * @author Administrator * */@SuppressWarnings("rawtypes")public class ParameterMap extends HashMap implements Map{ /** * */ private static final long serialVersionUID = 1L; Map map = null; HttpServletRequest request; public ParameterMap(){ map=new HashMap(); } @SuppressWarnings("unchecked") public ParameterMap(HttpServletRequest request){ this.request=request; try { request.setCharacterEncoding("utf-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } Map Proerties = request.getParameterMap(); Map returnMap = new HashMap(); Iterator entries = Proerties.entrySet().iterator(); Map.Entry entry; while(entries.hasNext()){ String name=""; String value=""; entry = (Entry) entries.next(); name = (String) entry.getKey(); Object valueObject = entry.getValue(); if(valueObject == null){ value=""; }else if(valueObject instanceof String[]){ String[] values = (String[]) valueObject; for(int i=0;i<values.length;i++){ value = values[i]+","+value; } value=value.substring(0,value.length()-1); }else{ value=valueObject.toString(); } returnMap.put(name, value); } returnMap.put("SessionID", request.getSession().getId()); map=returnMap; } @Override public Object get(Object key) { Object obj = null; if(map.get(key) instanceof Object[]){ Object[] arr = (Object[]) map.get(key); obj = request==null?arr:(request.getParameter((String) key) == null?arr:arr[0]); }else{ obj = map.get(key); } return obj; } public String getString(Object key){ String str = ""; if(get(key) != null){ str = String.valueOf(get(key)); } return str; } @SuppressWarnings("unchecked") @Override public Object put(Object key, Object value) { if(value == null){ return map.put(key, ""); } return map.put(key, value); } @SuppressWarnings("unchecked") public Object putObject(Object key,Object value){ return map.put(key, value); } @Override public Object remove(Object key) { return map.remove(key); } @Override public void clear() { map.clear(); } @Override public boolean containsKey(Object key) { return map.containsKey(key); } @Override public boolean containsValue(Object value) { return map.containsValue(value); } @Override public Set entrySet() { return map.entrySet(); } @Override public boolean isEmpty() { return map.isEmpty(); } @Override public Set keySet() { return map.keySet(); } @SuppressWarnings("unchecked") @Override public void putAll(Map m) { map.putAll(m); } @Override public int size() { return map.size(); } @Override public Collection values() { return map.values(); }}
11.BaseController(所有控制器的父类,好的地方是过滤参数的方法)
package com.lrs.controller;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.springframework.web.context.ContextLoader;import org.springframework.web.context.WebApplicationContext;import org.springframework.web.context.request.RequestContextHolder;import org.springframework.web.context.request.ServletRequestAttributes;import org.springframework.web.servlet.ModelAndView;import com.tyro.util.MyLogger;import com.tyro.util.ParameterMap;public class BaseController { protected MyLogger logger = MyLogger.getLogger(this.getClass()); /** * springMVC 获取requset * * @return */ public HttpServletRequest getRequest() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()) .getRequest(); return request; } /** * 获取session * @return */ public HttpSession getSession(){ HttpSession session = this.getRequest().getSession(); return session; } /** * 获取ServletContext * @return */ public ServletContext getServletContent() {// ServletContext application= request.getServletContext(); WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext(); ServletContext servletContext = webApplicationContext.getServletContext(); return servletContext; } /** * 获取ModelAndView * @return */ public ModelAndView getModelAndView(){ return new ModelAndView(); } /** * 过滤参数 * * @return */ public ParameterMap getParameterMap() { return new ParameterMap(this.getRequest()); } /** * 获取ip * * @return */ public String getRemortIP() { HttpServletRequest request = this.getRequest(); String ip = ""; if (request.getHeader("x-forwarded-for") == null) { ip = request.getRemoteAddr(); } else { ip = request.getHeader("x-forwarded-for"); } return ip; } /** * 获取ip * @param request * @return */ public String getIpAddr() { HttpServletRequest request = this.getRequest(); 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.getRemoteAddr(); } return ip; } public static void printLogger(MyLogger logger,String message){ logger.info(message); }}
11.测试类
package com.tyro.controller;import javax.annotation.Resource;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import com.tyro.redis.RedisClientTemplate;import com.tyro.util.ParameterMap;@RequestMapping(value="/redis")@Controllerpublic class RedisTestController extends BaseController{ @Resource(name="redisClientTemplate") RedisClientTemplate redisClient; /** * * @return */ @RequestMapping("/test") @ResponseBody public Object test(){ ParameterMap pm = this.getParameterMap(); if(pm != null && pm.size() > 0) for(Object key: pm.keySet()){ //传什么上来就缓存什么 redisClient.set(key.toString(),pm.getString(key)); } //打印 for(Object key: pm.keySet()){ //传什么上来就缓存什么 System.out.println("获取缓存key"+key.toString()+"="+redisClient.get(key.toString())); } return pm; }}
请求地址
控制台
redis客户端看看
OK 测试完毕。最后贴上工程目录结构
阅读全文
0 0
- Spring+SpringMVC+mybatis+redis(三)
- SPRINGMVC+MYBATIS+SPRING+REDIS
- Spring+SpringMVC+mybatis+redis(一)
- Spring+SpringMVC+mybatis+redis(二)
- 三、maven项目搭建 springmvc+ spring + mybatis(springmvc搭建)
- springmvc+mybatis+spring+redis后台架构
- springmvc+spring-security+mybatis +redis 框架抽取
- Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
- Spring+SpringMVC+Mybatis整合系列(三)SSM框架整合
- idea创建maven,spring,springmvc,mybatis,项目(三)
- SpringMVC+Spring+mybatis+redis项目从零开始--Springmvc配置实现
- SpringMVC+Spring+mybatis+redis项目从零开始--Springmvc配置实现
- Spring+SpringMVC+mybatis+easyui整合实例(三)spring mvc整合及mybatis事务部分
- 三大框架Spring+Mybatis+springMVC整合
- SpringMvc(三)配置Mybatis
- SSM(springMVC+spring+MyBatis)
- Spring+SpringMVC+Mybatis(登录)
- SSM (Spring+SpringMVC + MyBatis)
- java简单实现RabbitMQ
- Spring+SpringMVC+mybatis+redis(二)
- go学习(九)——Go tool pprof之runtime/pprof 的使用
- python 24点算数
- UVA
- Spring+SpringMVC+mybatis+redis(三)
- 权限Demo
- 安装sublime
- 一个mybatis分页工具类
- 简单网络判断
- EmojIcon的简单使用
- MYSQL查询今天,昨天,这个周,上个周,这个月,上个月,今年,去年的数据
- vs2008快捷键极其技巧
- MYSQL 错误收集