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 = []; ...
随机推荐
- lambda形式(转)
lambda语句被用来创建新的函数对象,并且在运行时返回它们. 使用lambda形式 #!/usr/bin/python# Filename: lambda.py def make_repeater( ...
- Center OS mongodb安装
一.下载 1.#cd /usr/local/src 2.#wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2. ...
- javascript 事件相关
1.添加事件 >基本注册方式 <button id="info">click me!</button> var span = document.get ...
- 了解javascript中的this --实例篇
对javascript this的赋值有了深一层的理解后,看一下比较复杂的情况,this的应用篇参考<对javascript this的理解>. #demo1 var name=" ...
- careercup-高等难度 18.7
18.7 给定一组单词,编写一个程序,找出其中的最长单词,且该单词由这组单词中的其他单词组合而成. 解法: 原题 给定字符串,以及一个字典,判断字符串是否能够拆分为字段中的单词.例如,字段为{hell ...
- ubuntu 11.10 安装apache2 tomcat6
ubuntu 11.10 安装apache2 tomcat6 导读 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目 ...
- 【阿里云产品公测】PTS压力测试WP站搜索
[阿里云产品公测]PTS压力测试WP站搜索 作者:阿里云用户cnsjw PTS性能测试服务是一个非常非常强大的压力测试工具.可以模拟百人同时访问网站的情况,并监测ECS和RDS的各项指标,生成非常详细 ...
- iOS - UI - UIStepper
7.UIStepper //计数器控件 固定宽高 UIStepper * stepper = [[UIStepper alloc] initWithFrame:CGRectMake(100, 10 ...
- jquery plugins —— datatables ajax post更新数据
通过下面语句,可以定义datatables插件通过ajax post方法从服务器段获取JSON格式的数据. 错误写法(这样写再执行ajax.reload()方法时,ID参数还是初始时,不会更新): v ...
- (转)JavaScript 中对变量和函数声明的“提前(hoist)”
变量声明“被提前” JavaScript 的语法和 C .Java.C# 类似,统称为 C 类语法.有过 C 或 Java 编程经验的同学应该对“先声明.后使用”的规则很熟悉,如果使用未经声明的变量或 ...