java - SpringMVC如何有没有中间件之类的东西 ?
问题描述
@RequestMapping('/admin') public String index(ModelMap modelMap,HttpServletRequest req){String scheme = req.getScheme();String serverName = req.getServerName();int serverPort = req.getServerPort();String path = req.getContextPath();String basePath = scheme+'://'+serverName+':'+serverPort+path+'/';modelMap.put('basePath',basePath);modelMap.put('adminPath', basePath+'admin/');modelMap.put('staticPath', basePath+'static/admin/common');return 'admin/index'; } @RequestMapping('/admin/login') public String login(ModelMap modelMap,HttpServletRequest req){String scheme = req.getScheme();String serverName = req.getServerName();int serverPort = req.getServerPort();String path = req.getContextPath();String basePath = scheme+'://'+serverName+':'+serverPort+path+'/';modelMap.put('basePath',basePath);modelMap.put('adminPath', basePath+'admin/');modelMap.put('staticPath', basePath+'static/admin/common');return 'admin/login'; }
获取路径的代码写了两份 ,感觉好臃肿啊,怎么让只写一份,然后给共用?
问题解答
回答1:1.首先中间件概念你没弄清楚,不能乱用2.回到你的问题,就是一个方法抽取的场景,建议看一下<<代码重构>>这本书
回答2:写到filter当中,或者用动态代理
回答3:代码随便重构一下就好看多了
public String index(ModelMap modelMap,HttpServletRequest req){ String basePath = getBasePath(req); modelMap.put('basePath',basePath); modelMap.put('adminPath', basePath+'admin/'); modelMap.put('staticPath', basePath+'static/admin/common'); return 'admin/index';}private String getBasePath(HttpServletRequest req) { String scheme = req.getScheme(); String serverName = req.getServerName(); int serverPort = req.getServerPort(); String path = req.getContextPath(); String basePath = scheme+'://'+serverName+':'+serverPort+path+'/'; return basePath;}
相关文章:
1. vue打包和PHP后台怎样同域名部署配置2. php怎么实现删除文章的同时,同时删除编辑器上传的图片??3. phpStudy怎么把mysql升级到7.x4. 请问老师?5. 数组排序,并把排序后的值存入到新数组中6. 请问“由于 Cookie “PHPSESSID”的“SameSite”属性设置为“None”,但缺少“Secure”属性,此 Cookie 未来将被拒绝。”请问出现这个问题怎么办?7. 07:08秒,老师讲错了8. php多任务倒计时求助9. 上传多图时,最后一张图为缩略图,想设置第一张图为缩略图怎么解决?10. dump(Db::query(’SELECT * FROM `user`’));的时候提醒错误。
