springMVC基础controller类
此文章是基于 搭建SpringMVC+Spring+Hibernate平台
功能:设置请求、响应对象;session、cookie操作;ajax访问返回json数据;
创建springMVC基础controller类:
BaseController.java
package com.ims.web.controller; import java.io.IOException; import java.net.URLDecoder; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.web.bind.annotation.ModelAttribute; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.serializer.SerializerFeature; public class BaseController { /** * AJAX访问返回操作成功状态标识符 */ protected static final String STATUS_SUCCESS = "success"; /** * AJAX访问返回操作失败状态标识符 */ protected static final String STATUS_ERROR = "error"; protected HttpServletRequest request; protected HttpServletResponse response; protected HttpSession session; /** * 每个controller方法执行前被执行 */ @ModelAttribute public void setReqAndRes(HttpServletRequest request, HttpServletResponse response) { this.request = request; this.response = response; this.session = request.getSession(); } /** * 取得session中的值 * @param name session主键 * @return 主键对应的值 */ public Object getSession(String name) { return session.getAttribute(name); } /** * 往session中添加键值对 * @param name session主键 * @param obj session值 */ public void setSession(String name, Object obj) { session.setAttribute(name, obj); } /** * 添加cookie * @param key cookie主键 * @param value cookie值 */ public void addCookie(String key, String value){ Cookie cookie = new Cookie(key, value); cookie.setPath("/");// 这个要设置 cookie.setMaxAge(60*60*24*30);//保留一个月 以秒为单位 response.addCookie(cookie); } /** * 删除cookie * @param key cookie主键 */ public void deleteCookie(String key){ Cookie cookies[] = request.getCookies(); if (cookies != null) { for (int i = 0; i < cookies.length; i++) { if (cookies[i].getName().equals(key)) { Cookie cookie = new Cookie(key,null); cookie.setPath("/");//设置成跟写入cookies一样的 cookie.setMaxAge(0); response.addCookie(cookie); } } } } /** * 取得cookie的值 * @param key cookie主键 */ public String getCookieValue(String key) { String cookieVal = null; for(Cookie cookie : request.getCookies()){ if (cookie.getName().equals(key)) { try { cookieVal = URLDecoder.decode(cookie.getValue(), "UTF-8"); } catch (Exception e) {} break; } } return cookieVal; } /** * 取得访问项目的url */ public String getBaseUrl(){ return request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() ; } /** * ajax输出 * @param content 输出的文本内容 * @param type 输出的文本类内容 */ public void ajax(String content, String type) { try { response.setContentType(type + ";charset=UTF-8"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); response.getWriter().write(content); response.getWriter().flush(); } catch (IOException e) { e.printStackTrace(); } } /** * 响应json格式的字符串 * @param content json格式的字符串 */ public void ajax(String content) { ajax(content, "application/json"); } /** * 响应带状态的json格式的数据 * @param status * @param content */ public void ajaxJson(String status, Object content){ String json = "{\"status\" : \""+status+"\", " + "\"message\" : "+JSON.toJSONString(content)+" }"; ajax(json, "application/json"); } /** * 响应json格式的数据 * @param content */ public void ajaxJson(Object content) { String json = JSON.toJSONString(content, SerializerFeature.WriteDateUseDateFormat); ajax(json, "application/json"); } }
springMVC基础controller类的更多相关文章
- SpringMVC中Controller类的方法返回String不跳转,而是将字符串显示到页面
问题描述: 在spring中,控制层的注解一般都是使用@Controller,如果哪个请求参数需要返回数据的话,我们可以在该方法上配合@ResponseBody注解使用,这也是比较常见的方式了. 今天 ...
- SpringMVC基础-controller方法中的参数注解
@PathVariable 映射 URL 绑定的占位符 带占位符的 URL 是 Spring3.0 新增的功能,该功能在 SpringMVC 向 REST 目标挺进发展过程中具有里程碑的意义 通过 ...
- 以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewControllers方法即可达到效果了
以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewC ...
- SpringMVC中在Controller类的每个方法执行前调用某个方法的实现
在使用SpringMVC做项目的时候,如果想在@Controller类中每个@RequestMapping方法执行前都调用某个方法,要怎么实现呢?答案是使用Spring的@ModelAttribute ...
- SpringMVC基础入门
一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要的jar包. 2.添加Web.xml配置文件中关于SpringMVC的配置 1 2 3 4 5 6 ...
- SpringMVC自动扫描@Controller注解的bean
若要对@Controller注解标注的bean进行自动扫描,必须将<context:component-scan base-package="包路径.controller"/ ...
- SpringMVC基础入门,创建一个HelloWorld程序
ref:http://www.admin10000.com/document/6436.html 一.SpringMVC基础入门,创建一个HelloWorld程序 1.首先,导入SpringMVC需要 ...
- SpringMVC之Controller和参数绑定
在上一篇Spring+SpringMVC+Mybatis整合中说到了SSM的整合,并且在其中添加了一个简单的查询功能,目的只是将整个整合的流程进行一个梳理,下面在上一篇中工程的基础上再说一些关于Spr ...
- SpringMVC框架02——SpringMVC的Controller详解
1.基于注解的控制器 1.1.@Controller 注解类型 在SpringMVC中使用org.springframework.stereotype.Controller注解类型声明某类的实例是一个 ...
随机推荐
- TF-IDF提取行业关键词
1. TF-IDF简介 TF-IDF(Term Frequency/Inverse Document Frequency)是信息检索领域非常重要的搜索词重要性度量:用以衡量一个关键词\(w\)对于查询 ...
- javascript的 Object 和 Function
一. javascript 的 内置对象: Object 和 Function javascript所有东西,包括 Function 都是对象 . Array 其实是一个 Function 类型的对 ...
- 前端 angular 和 bootstrap 的安装步骤
1.安装bower模块: npm install -g bower --registry=http://registry.npm.taobao.org 2.创建.bowerrc 文件存放 前端相关的模 ...
- C++_系列自学课程_第_6_课_bitset集_《C++ Primer 第四版》
在C语言中要对一个整数的某一个位进行操作需要用到很多的技巧.这种情况在C++里面通过标准库提供的一个抽象数据类型 bitset得到了改善. 一.标准库bitset类型 1.bitset的作用 bits ...
- c中使用gets() 提示warning: this program uses gets(), which is unsafe.
今天在C代码中使用gets()时提示“warning: this program uses gets(), which is unsafe.”,然后这个程序还能运行,无聊的我开始查阅资料,为啥gets ...
- 更新整理本人所有博文中提供的代码与工具(Java,2014.01)
为了更方便地管理博文中涉及的各种代码与工具资源,现在把这些资源迁移到 Google Code 中,有兴趣者可前往下载. Java 1.<高效 Java Web 应用开发框架 JessMA v3. ...
- durex-word
"(半夜没睡着) “你是不是饿了,哎呀我也饿了.”" "(聊到合拍处) “我和你有一万句me too想要说.”" "(异地恋) “我辞职,去你那儿吧! ...
- 发现两个有趣的CSS3效果
一.CSS3画机器猫 http://keleyi.com/keleyi/phtml/html5/3.htm 哆啦A梦效果图: 可用于浏览器对CSS3支持情况的测试 但最近有人对这个测试表示怀疑,指该测 ...
- Mvc与WebForm优缺点及Mvc的使用
关于Mvc与WebForm的优缺点在网上的评论可谓不胜枚举,但脱离了我们的项目来谈这些意义就不大了.以我们这次改版来看,WebForm的优势有以下几点: 一,可以使用<#include>, ...
- js限制文本框只能输入数字方法小结
有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等代码. 例如,输入大于0的正整数 代码如下: <input onkeyup="i ...