Controller层的写法

项目中的两个Controller层实现类,一个是跳转到jsp页面,一个是以Json形式返回Map键值对。

跳转到jsp页面:

 1 package com.controller;
 2
 3 import java.io.IOException;
 4
 5 import javax.servlet.http.HttpServletRequest;
 6
 7 import org.apache.commons.httpclient.HttpClient;
 8 import org.apache.commons.httpclient.HttpException;
 9 import org.apache.commons.httpclient.methods.PostMethod;
10 import org.springframework.stereotype.Controller;
11 import org.springframework.web.bind.annotation.RequestMapping;
12 import org.springframework.web.servlet.ModelAndView;
13
14 import util.AuthConfig;
15
16 @Controller
17 public class Operate {
18     @RequestMapping(value="login.html")
19     public ModelAndView requestPost(HttpServletRequest request){
20         AuthConfig config = AuthConfig.getInstance();
21         String server = config.getConfigParameter("server");
22         String client_id = config.getConfigParameter("client_id");
23         String client_secret = config.getConfigParameter("client_secret");
24         String redirect_uri = config.getConfigParameter("redirect_uri");
25         String scope = config.getConfigParameter("scope");
26         String url = server+"AuthServer/oauth2/authorize?client_id="+client_id+"&client_secret="+client_secret+"&redirect_uri="+redirect_uri+"&response_type=code&scope="+scope;
27         System.out.println(url);
28         ModelAndView mav = new ModelAndView("login");
29         mav.addObject("url", url);
30         return mav;
31     }
32 }

一个是以Json形式返回Map键值对:

 1 package com.bupt.auth.controller;
 2
 3 import java.util.HashMap;
 4 import java.util.Map;
 5
 6 import com.bupt.oauth2.token.AuthKeyGenerator;
 7 import com.bupt.oauth2.token.DefaultAuthKeyGenerator;
 8 import com.bupt.oauth2.utils.*;
 9
10 import org.springframework.beans.factory.annotation.Autowired;
11
12 import com.bupt.oauth2.common.OAuth2AccessToken;
13
14 import org.springframework.web.bind.annotation.RequestBody;
15 import org.springframework.web.bind.annotation.RequestMapping;
16 import org.springframework.web.bind.annotation.RequestMethod;
17 import org.springframework.web.bind.annotation.ResponseBody;
18 import org.springframework.web.bind.annotation.RestController;
19
20 import com.bupt.auth.bussiness.RegisterAppBean;
21 import com.bupt.auth.bussiness.RegisterBean;
22 import com.bupt.auth.entity.User;
23 import com.bupt.auth.exception.MyException;
24 import com.bupt.auth.service.UserManager;
25 import com.bupt.oauth2.peve.TokenHandler;
26 import com.bupt.oauth2.common.util.OAuth2Utils;
27 import com.bupt.oauth2.common.util.VePeUtils;
28
29 @RestController
30 public class RegisteController
31 {
32     @Autowired
33     private TokenHandler tokenHandler;
34     @Autowired
35     private UserManager userManager;
36
37     private AuthKeyGenerator authKeyGenerator = new DefaultAuthKeyGenerator();
38
39     @RequestMapping(value="/registeruser.html",method=RequestMethod.POST)
40     @ResponseBody
41     public Map<String, Object> register(@RequestBody RegisterBean registerbean)
42     {
43         Map<String, Object> map = new HashMap<String, Object>();
44         User user = new User();
45         try{
46             if(userManager.findByUsername(registerbean.getUser_name()) != null){
47                 map.put("result", "fail");
48                 map.put("info", "Username has already exist!!");
49                 map.put("failcode", "602");
50                 return map;
51             }
52         }catch(MyException e){
53             map.put("result", "fail");
54             map.put("info", e.getMessage());
55             map.put("failcode", e.getFailCode());
56             return map;
57         }
58
59         user.setUsername(registerbean.getUser_name());
60         user.setPassword(registerbean.getUser_password());
61         user.setInfo(registerbean.getInfo());
62         userManager.addUser(user);
63
64         createUserAccessToken(user);
65         System.out.println(registerbean.getUser_name());
66
67         map.put("result", "success");
68         return map;
69     }
70
71     private void createUserAccessToken(User user)
72     {
73         String userName = user.getUsername();
74         String userId = String.valueOf(user.getId());
75         Map<String, String> requestParameters =  VePeUtils.buildRequestParameters(userId, null);
76         tokenHandler.accessToken(requestParameters);
77         //user 中存放authentication_id
78         //与JdbcTokenStore中storeAccessToken方法中生成authentication_id相对应
79         user.setAccesstoken(authKeyGenerator.extractKeyByVePeCredentials(user.toString()));
80         userManager.updateUser(user);
81     }
82 }
时间: 2024-10-03 13:46:34

Controller层的写法的相关文章

【统一异常处理】@ControllerAdvice + @ExceptionHandler 全局处理 Controller 层异常

1.利用springmvc注解对Controller层异常全局处理 对于与数据库相关的 Spring MVC 项目,我们通常会把 事务 配置在 Service层,当数据库操作失败时让 Service 层抛出运行时异常,Spring 事物管理器就会进行回滚. 如此一来,我们的 Controller 层就不得不进行 try-catch Service 层的异常,否则会返回一些不友好的错误信息到客户端.但是,Controller 层每个方法体都写一些模板化的 try-catch 的代码,很难看也难维护

@ControllerAdvice + @ExceptionHandler全局处理Controller层异常(转)

0.前言 对于与数据库相关的Spring MVC项目,我们通常会把事务配置在 Service层,当数据库操作失败时让Service层抛出运行时异常,Spring事物管理器就会进行回滚. 如此一来,我们的Controller层就不得不进行try-catch Service层的异常,否则会返回一些不友好的错误信息到客户端.但是,Controller层每个方法体都写一些模板化的try-catch的代码,很难看也难维护,特别是还需要对Service层的不同异常进行不同处理的时候.例如以下 Control

DAO层,Service层,Controller层、View层介绍

来自:http://jonsion.javaeye.com/blog/592335 DAO层 DAO 层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此 接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及 有关数据库连接的参数都在Spring的配置文件中进行配置. Service层 Service 层主要负责业

Junit mockito 测试Controller层方法有Pageable异常

1.问题 在使用MockMVC+Mockito模拟Service层返回的时候,当我们在Controller层中参数方法调用有Pageable对象的时候,我们会发现,我们没办法生成一个Pageable的对象,会报一个Pageable是一个接口的错误.当我们把所有的参数从Pageable接口变成Pageable的实现类PageRequest的时候,所有的方法参数都换成PageRequest,又会出现一个新的错误,且不说PageRequest不能作为参数用于hibernate的分页查询,另一方面,它没

DAO层,Service层,Controller层、View层

DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置. Service层:Service层主要负责业务模块的逻辑应用设计.同样是首先设计接口,再设计其实现的类,接着再Spring的配置文件中配

Spring mvc 对象的对象的属性如何传到controller层

jsp页面的form: <form class="am-form" id="addForm" action="addStudent" method="post"> <div class="am-g am-margin-top"> <div class="am-u-sm-4 am-u-md-2 am-text-right">学生编号</div>

Spring+MVC Controller层接收App端请求的中文参数乱码问题。

在正文之前,说明下Filter的作用: 过滤器顾名思义就是进行过滤的,可以实现代码的定向执行和预处理.通俗点说法filter相当于加油站,request是条路,response是条路,目的地是servlet,这个加油站设在什么地方对什么数据操作可以由你来控制.备注:过滤器可以再请求和响应之前做一部分预处理,有效的过滤掉不需要的内容,而且过滤器可以被复用,节省了大量的复用代码,提高了java的代码执行效率 java的Controller层接收App的请求时,请求的参数是中文,服务器端接收到的是乱码

Spring Mvc 在非controller层 实现获取request对象

一般我们在Controller层,会编写类似这样的方法 @Controller @RequestMapping(value="/detail") public class GetURIDetailController { @SystemControllerLog(description = "id") @RequestMapping(value="/{id}",method={RequestMethod.GET}) public ModelAnd

CSS常用浮出层的写法

<!doctype html><html><head><meta charset="utf-8"><title>CSS常用浮出层的写法</title><style type="text/css">/* poptip */.poptip{position: absolute;top: 20px;left:20px;padding: 6px 10px 5px;*padding: 7px