-
Spring MVC 设置Response的charset
@RequestMapping(value = "/login", produces = "text/plain;charset=gb2312") @ResponseBody public String login(HttpServletRequest req, HttpServletResponse resp) { }
-
Spring MVC 超时处理
//在stackoverflow上看到的一个有趣的案例 //场景: 用户访问,如果后台处理时间<10s时返回正常结果页面,否则返回超时页面 //AsyncTaskExecutor异步任务处理, 但它的submit()方法是阻塞型的. final Future<ModelAndView> future = asyncTaskExecutor.submit(new Callable<ModelAndView>() { @Override public ModelAndView call() throws Exception { //lengthy computations... return new ModelAndView("done"); } }); try { return future.get(10, TimeUnit.SECONDS); // 设置超时时间 } catch (TimeoutException e) { //捕获超时异常进行处理 return new ModelAndView("timeout"); }
- Spring MVC 获取 Session Attribute
使用范例
@RequestMapping("/data/file/selectFileLog") public @ResponseBody Pagination selectFileLog(@RequestBody Pagination page, @SessionAttribute("loginUser")LoginUser loginUser){ //do sth. }
实现步骤:
//1. 创建注解类 @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) public @interface SessionAttribute { public String value(); public boolean required() default true; }
//2. 实现Resolver public class SessionAttributeArgumentsResolver implements WebArgumentResolver { Logger console = Logger.getLogger(SessionAttributeArgumentsResolver.class); @Override public Object resolveArgument(MethodParameter param, NativeWebRequest request) throws Exception { Annotation[] annotations = param.getParameterAnnotations(); for (Annotation annotation : annotations){ if(SessionAttribute.class.isInstance(annotation)){ SessionAttribute sa = (SessionAttribute) annotation; String attrName = sa.value(); boolean required = sa.required(); Object res = request.getAttribute(attrName, RequestAttributes.SCOPE_SESSION); if (null == res && required){ throw new RuntimeException("Attribute:{ " + attrName + " } not exsited in session !"); } return res; } } return UNRESOLVED; } }
<!--3. 配置Resolver --> <mvc:annotation-driven > <mvc:argument-resolvers> <bean id="sessionAttributeArgumentsResolver" class="com.lhw.util.base.SessionAttributeArgumentsResolver"></bean> </mvc:argument-resolvers> </mvc:annotation-driven>
- Spring JDBC 插入并获取新增记录的ID
public static long commonInsert(JdbcTemplate jt, String tableName, String idColumn, Map<String, Object> object){ SimpleJdbcInsert sji = new SimpleJdbcInsert(jt) .withTableName(tableName) .usingGeneratedKeyColumns(idColumn); return sji.executeAndReturnKey(object).longValue(); }
相关推荐
SPRING 笔记SPRING 笔记SPRING 笔记
spring笔记spring笔记spring笔记spring笔记spring笔记spring笔记
spring笔记spring基础笔记
spring笔记 狂神说
spring 初学 笔记 入门提示
达内,tarena,spring笔记,springPPT课件,达内spring笔记 spring的全套资料
spring入门笔记
尚硅谷Spring笔记
Spring笔记示例源代码
我在学校时整理的笔记,从不懂时到懂,因为时间紧,要找工作,所以整理不好的请谅解,如果需要一些其它资料的,可以找我,这是我的邮箱zhj915946763@163.com,我有java基础的,spring,hibernate,Struts2,svn,xml,...
Spring学习笔记,Spring就是一个工厂,可以将所有对象创建和依赖关系维护,交给spring管理
网上获取的简单关于spring的一些学习笔记, 包括 spring, springMVC, spring cloud, springBoot 和一些其他相关的笔记, 有需要的可以看看
狂神的spring讲解资料,已汇总成PDF笔记,并加了章节标签方便阅读
适合听狂神课的人和刚学框架的人
Spring笔记和小结Spring笔记和小结Spring笔记和小结Spring笔记和小结
Spring快速入门,知识收费
传智播客左慈老师培训的spring笔记,压缩包里面包含四天的笔记