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 = []; ...
随机推荐
- 发现js端日期跟php端日期格式不一致
当程序没有问题,而php显示的日期和js显示的日期不一致,相差一天的时候或者其它,一定要看看php.ini中时区的配置是否合理.
- BigPipe
BigPipe是一个重新设计的基础动态网页服务体系.大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行.这是类似于大多数现代微处理器的流水 ...
- iOS和android游戏纹理优化和内存优化(cocos2d-x)
1.2d游戏最占内存的无疑是图片资源. 2.cocos2d-x不同平台读取纹理的机制不同.ios下面使用 CGImage,android和windows下是直接调用png库.我测试了下,使用png库直 ...
- Centos系统使用vpnc连接cisco的vpn服务
安装vpnc 因为Centos官方源中,所含的软件安装包较少,这里需增加Fedora的源,依次执行: sudo rpm -ivh http://dl.fedoraproject.org/pub/epe ...
- Android系统中设置TextView等的行间距
1.android:lineSpacingExtra 设置行间距,如”2dp”. 2.android:lineSpacingMultiplier 设置行间距的倍数,如”2″.
- WPF 之 未捕获异常的处理
首先,我们当然是要求应用程序开发人员,尽可能地在程序可能出现异常的地方都去捕捉异常,使用try…catch的方式.但是总是有一些意外的情况可能会发生,这就导致会出现所谓的“未捕获异常(Unhandle ...
- SQL Server 的事务和锁(二)-Range S-S锁
在这篇随笔中,我们的主要关注点在 Key-Range Lock.Key-Range Lock有 S-S.S-U.I-N.X-X几种情况.我们一个一个来说,力求明白.遗憾的是,这里可能会比较冗长,那么死 ...
- 【Linux/Ubuntu学习6】unbuntu 下载android源码
在Windows下安装Cygwin,通过Cygwin也可在Windows里通过本文的下载步骤下载Android源码. 以下为在Ubuntu下下载Google Android4.4源码的步骤: 1. 安 ...
- android 使用<merge>标签
<merge /> 标签在你嵌套 Layout 时取消了 UI 层级中冗余的 ViewGroup .比如,如果你有一个 Layout 是一个竖直方向的 LinearLayout,其中包含两 ...
- 要检测两个C文件的代码的抄袭情况
将抄袭部分输出 如果只是变量名替换了 也算抄袭 如果输入了一些干扰代码以防止被检测出来 也算抄袭专业程序代写c++程序代写