Controller层的写法
项目中的两个Controller层实现类,一个是跳转到jsp页面,一个是以Json形式返回Map键值对。
跳转到jsp页面:
package com.controller; import java.io.IOException; import javax.servlet.http.HttpServletRequest; import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; import util.AuthConfig; @Controller
public class Operate {
@RequestMapping(value="login.html")
public ModelAndView requestPost(HttpServletRequest request){
AuthConfig config = AuthConfig.getInstance();
String server = config.getConfigParameter("server");
String client_id = config.getConfigParameter("client_id");
String client_secret = config.getConfigParameter("client_secret");
String redirect_uri = config.getConfigParameter("redirect_uri");
String scope = config.getConfigParameter("scope");
String url = server+"AuthServer/oauth2/authorize?client_id="+client_id+"&client_secret="+client_secret+"&redirect_uri="+redirect_uri+"&response_type=code&scope="+scope;
System.out.println(url);
ModelAndView mav = new ModelAndView("login");
mav.addObject("url", url);
return mav;
}
}
一个是以Json形式返回Map键值对:
package com.bupt.auth.controller; import java.util.HashMap;
import java.util.Map; import com.bupt.oauth2.token.AuthKeyGenerator;
import com.bupt.oauth2.token.DefaultAuthKeyGenerator;
import com.bupt.oauth2.utils.*; import org.springframework.beans.factory.annotation.Autowired; import com.bupt.oauth2.common.OAuth2AccessToken; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController; import com.bupt.auth.bussiness.RegisterAppBean;
import com.bupt.auth.bussiness.RegisterBean;
import com.bupt.auth.entity.User;
import com.bupt.auth.exception.MyException;
import com.bupt.auth.service.UserManager;
import com.bupt.oauth2.peve.TokenHandler;
import com.bupt.oauth2.common.util.OAuth2Utils;
import com.bupt.oauth2.common.util.VePeUtils; @RestController
public class RegisteController
{
@Autowired
private TokenHandler tokenHandler;
@Autowired
private UserManager userManager; private AuthKeyGenerator authKeyGenerator = new DefaultAuthKeyGenerator(); @RequestMapping(value="/registeruser.html",method=RequestMethod.POST)
@ResponseBody
public Map<String, Object> register(@RequestBody RegisterBean registerbean)
{
Map<String, Object> map = new HashMap<String, Object>();
User user = new User();
try{
if(userManager.findByUsername(registerbean.getUser_name()) != null){
map.put("result", "fail");
map.put("info", "Username has already exist!!");
map.put("failcode", "602");
return map;
}
}catch(MyException e){
map.put("result", "fail");
map.put("info", e.getMessage());
map.put("failcode", e.getFailCode());
return map;
} user.setUsername(registerbean.getUser_name());
user.setPassword(registerbean.getUser_password());
user.setInfo(registerbean.getInfo());
userManager.addUser(user); createUserAccessToken(user);
System.out.println(registerbean.getUser_name()); map.put("result", "success");
return map;
} private void createUserAccessToken(User user)
{
String userName = user.getUsername();
String userId = String.valueOf(user.getId());
Map<String, String> requestParameters = VePeUtils.buildRequestParameters(userId, null);
tokenHandler.accessToken(requestParameters);
//user 中存放authentication_id
//与JdbcTokenStore中storeAccessToken方法中生成authentication_id相对应
user.setAccesstoken(authKeyGenerator.extractKeyByVePeCredentials(user.toString()));
userManager.updateUser(user);
}
}
Controller层的写法的更多相关文章
- @ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常==》记录
对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚. 如此一来, ...
- 转:@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
继承 ResponseEntityExceptionHandler 类来实现针对 Rest 接口 的全局异常捕获,并且可以返回自定义格式: 复制代码 1 @Slf4j 2 @ControllerAdv ...
- 【统一异常处理】@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常
1.利用springmvc注解对Controller层异常全局处理 对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service ...
- SpringMVC在Controller层中注入request的坑
记一次为了节省代码没有在方法体中声明HttpServletRequest,而用autowire直接注入所钻的坑 结论 给心急的人. 直接在Controller的成员变量上使用@Autowire声明Ht ...
- spring security 在controller层 方法级别使用注解 @PreAuthorize("hasRole('ROLE_xxx')")设置权限拦截 ,无权限则返回403
1.前言 以前学习的时候使用权限的拦截,一般都是对路径进行拦截 ,要么用拦截器设置拦截信息,要么是在配置文件内设置拦截信息, spring security 支持使用注解的形式 ,写在方法和接口上拦截 ...
- DAO层,Service层,Controller层、View层 的分工合作
DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口 ...
- Junit mockito 测试Controller层方法有Pageable异常
1.问题 在使用MockMVC+Mockito模拟Service层返回的时候,当我们在Controller层中参数方法调用有Pageable对象的时候,我们会发现,我们没办法生成一个Pageable的 ...
- [转]DAO层,Service层,Controller层、View层
来自:http://jonsion.javaeye.com/blog/592335 DAO层 DAO 层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DA ...
- 微信上传文章素材—ASP.NET MVC从View层传数据到Controller层
View层: $('#btnNews').click(function() { if (!confirm('确定要提交吗?')) { return; } var frontViewData = []; ...
随机推荐
- ext2元数据结构
概述 本篇博客主要描述ext2文件系统中的各种典型元数据结构,其中包括文件系统级别的元数据,如超级块,块组描述符等,也包括文件级的元数据,如文件目录项,文件inode等. ex ...
- 分享10款常用的jQuery焦点图插件
爱编程一直在收集整理编程相关的知识和解决方案,今天小编为大家带来10款非常常用的jquery焦点图插件. 1.jQuery可自动播放动画的焦点图插件 之前我们已经分享过很多非常实用的jQuery焦点图 ...
- IOS开发之路三(XML解析之KissXML的使用)
最近再做一个项目需要用到xml的解析.今天查了一些资料自己做了一个小demo.纯OC没有界面.. 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用 ...
- jquery datatable[表格处理]
最近在公司实习发现一个额功能强大的表格解决方案,了解了一下,先总结如下: 1.官网:http://www.datatables.net/ 2.需要特别注意:被dataTable处理的table对象,必 ...
- 通用权限管理系统接口文档V4.2 版本之角色管理功能介绍
角色功能维护界面:可实现添加.修改.删除角色,向角色添加或删除人员,角色具有哪些菜单的管理功能.
- Linq中使用Left Join
use Test Create table Student( ID ,) primary key, ) not null ) Create Table Book( ID ,) primary key, ...
- Scrapy使用心得
今天安装了大名鼎鼎的Scrapy,不过碰到了不少问题,包括"Unable to find vcvarsall.bat" 这个错误应该很常见的,用了最简单的解决方法: 安装visua ...
- DNS resolving 占用大量日志
公司内部DNS配置好后,测试解析正常,只是几乎每秒都有无法解析的日志产生.但分析日志时发现,每天的日志都有2G左右.日志中几乎全是类似network unreachable resolving 'ww ...
- Shell学习笔记 - 条件判断式
1. 判断格式 1) test 参数 文件 例: test -e /root/install.log 2) [ 参数 文件 ] -- 推荐使用 例: [ -e /root/install.log ] ...
- DWZ框架学习
转自(http://blog.sina.com.cn/s/blog_667ac0360102ec0q.html) 初始化配置文件 $(function(){ DWZ.init("dwz.fr ...