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注解类型声明某类的实例是一个 ...
随机推荐
- ASP.NET系统国际化总结
引言 系统要求同时支持中英文,以前对国际化这块只是听说过,从来没有自己动手过,提到国际化那么首先肯定想到的就是资源文件,也确实是这样,于是乎我从开始着手系统国际化功能时前前后后共投入了4次时间段,每次 ...
- 深入理解javascript原型和闭包系列
从下面目录中可以看到,本系列有16篇文章,外加两篇后补的,一共18篇文章.写了半个月,从9月17号开始写的.每篇文章更新时,读者的反馈还是可以的,虽然不至于上头条,但是也算是中规中矩,有看的人,也有评 ...
- Openfire 4.1.0
http://www.igniterealtime.org/downloads/index.jsp 服务器端口 接口 端口 类型 描述 所有的地址 5222 客户端到服务器 客户端使用标准端口连接 ...
- Web 上传图片加水印
上传图片加水印 需要使用控件FileUpload 上传按钮Image控件展示上传的图片,页面中拖入三个控件 <form id="form1" runat="serv ...
- Lind.DDD.Authorization用户授权介绍
回到目录 Lind.DDD.Authorization是Lind.DDD框架的组成部分,之所以把它封装到框架里,原因就是它的通用性,几乎在任何一个系统中,都少不了用户授权功能,用户授权对于任何一个系统 ...
- Hadoop2.6.0安装 — 集群
文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6034187.html 这里写点 Hadoop2.6.0集群的安装和简单配置,一方面是为自 ...
- Cropper – 简单的 jQuery 图片裁剪插件
Cropper 是一个简单的 jQuery 图像裁剪插件.它支持选项,方法,事件,触摸(移动),缩放,旋转.输出的裁剪数据基于原始图像大小,这样你就可以用它们来直接裁剪图像. 如果你尝试裁剪跨域图像, ...
- jQuery实现checkbox反选(转载)
//反选 $("#btnInvert").click(function () { //1.方法一实现反选 $("#chk input:checkbox").ea ...
- Ajax表单异步上传(包括文件域)
起因 做前台页面时,需要调用WebAPI的Post请求,发送一些字段和文件(相当于把表单通过ajax异步发送出去,得到返回结果),然后得到返回值判断是否成功. 尝试 先是尝试了一下 "jQu ...
- 统计和分析系统性能【IO CPU 内存】的工具集合
统计和分析系统性能[IO CPU 内存]的工具集合 blktrace http://www.oschina.net/p/blktrace 获取磁盘写入的信息 root@demo:~/install/p ...