spring mvc 异常处理和session添加
在controller中进行设置
package com.stone.controller; import java.util.HashMap;
import java.util.Map; import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.PathVariable;
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.SessionAttributes;
import org.springframework.web.servlet.view.InternalResourceViewResolver; import com.stone.model.User; @Controller
@RequestMapping("/user")
@SessionAttributes("loginUser")//需要处理的session
public class UserController { private final static Map<String, User> users = new HashMap<String, User>(); public UserController() {
users.put("ldh", new User("ldh", "刘德华", "123", "123@123.com"));
users.put("zxy", new User("zxy", "张学友", "123", "123@123.com"));
users.put("gfc", new User("gfc", "郭富城", "123", "123@123.com"));
users.put("lm", new User("lm", "黎明", "123", "123@123.com"));
} @RequestMapping("/users")
public String list(Model model) {
model.addAttribute("users", users);
return "user/list";
} @RequestMapping(value = "/login", method = RequestMethod.GET)
public String login() {
return "user/login";
} @RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(String username, String password, Model model) {
if (!users.containsKey(username)) {
throw new RuntimeException("用户名不存在!");
}
if (!password.equals(users.get(username).getPassword())) {
throw new RuntimeException("用户密码不正确");
}
// 进行session的设置
model.addAttribute("loginUser", users.get(username));
return "redirect:/user/users/";
}
//进行异常处理
@ExceptionHandler(value = { RuntimeException.class })
public String handlerException(Exception ex, HttpServletRequest req) {
req.setAttribute("ex", ex);
return "error";
}
}
spring mvc 异常处理和session添加的更多相关文章
- 理解Spring MVC Model Attribute和Session Attribute
作为一名 Java Web 应用开发者,你已经快速学习了 request(HttpServletRequest)和 session(HttpSession)作用域.在设计和构建 Java Web 应用 ...
- 【译】理解Spring MVC Model Attribute 和 Session Attribute
作为一名 Java Web 应用开发者,你已经快速学习了 request(HttpServletRequest)和 session(HttpSession)作用域.在设计和构建 Java Web 应用 ...
- JavaWeb:Cookie处理和Session跟踪
JavaWeb:Cookie处理和Session跟踪 Cookie处理 什么是Cookie Cookie 是存储在客户端计算机上的文本文件,保留了各种跟踪信息.因为HTTP协议是无状态的,即服务器不知 ...
- 【Java Web开发学习】Spring MVC异常统一处理
[Java Web开发学习]Spring MVC异常统一处理 文采有限,若有错误,欢迎留言指正. 转载:https://www.cnblogs.com/yangchongxing/p/9271900. ...
- spring mvc 异常统一处理方式
springMVC提供的异常处理主要有两种方式: 一种是直接实现自己的HandlerExceptionResolver: 另一种是使用注解的方式实现一个专门用于处理异常的Controller——Exc ...
- C++复习8.异常处理和RTTI
C++异常处理和RTTI技术 20130930 1.异常处理的基本知识 C语言中是没有内置运行时错误处理机制,对于错误发生的时候使用的几种处理机制: 函数返回彼此协商后统一定义的状态编码来表示操作成功 ...
- C异常处理和C++异常处理的对比
每一种编译器实现异常处理的方式会有所不同,但是都是基于Windows的SEH异常处理.这里以MSC编译器为例. C异常处理 #include <Windows.h> int main(in ...
- java面试题之----spring MVC的原理和MVC
1.什么是mvc? 1.1原始比较初级的设计模式: 1.2 MVC设计模式 2MVC设计模式的优势与核心在于其能解耦和: 传统的设计模式相当于是一个串联的设计,只要其中一个环节出了问题便会使下一环节中 ...
- spring mvc下shiro的session,request等问题
最近的一个项目使用的是spring mvc,权限框架使用的是shiro. 不过有一个问题一直困扰着我,现在的session到底是谁的session,是servlet的还是shiro的. 于是我把spr ...
随机推荐
- 使用Jetty搭建Java Websocket Server,实现图像传输
https://my.oschina.net/yushulx/blog/298140 How to Implement a Java WebSocket Server for Image Transm ...
- Deep Learning (Python, C, C++, Java, Scala, Go)
https://github.com/donaldlee2008/DeepLearning
- dashboard项目心得:
DAO类实现查找数据并放入一个map public Map<String,Integer> getAllBlock_multi(String projectname){ LinkedHas ...
- android4.0 的图库Gallery2代码分析(一)
最近迫于生存压力,不得不给人兼职打工.故在博文中加了个求点击的链接.麻烦有时间的博友们帮我点击一下.没时间的不用勉强啊.不过请放心,我是做技术的,肯定链接没病毒,就是我打工的淘宝店铺.嘻嘻.http: ...
- js 增删改查
<html><head lang="en"> <meta charset="UTF-8"> <title>< ...
- ssl通信c实现
/*File:client.c *Auth:sjin *Date:2014-03-11 * */ #include <stdio.h>#include <string.h>#i ...
- POJ 3186 Treats for the Cows
简单DP dp[i][j]表示的是i到j这段区间获得的a[i]*(j-i)+... ...+a[j-1]*(n-1)+a[j]*n最大值 那么[i,j]这个区间的最大值肯定是由[i+1,j]与[i,j ...
- ds18b20再硬件设计部分的注意事项
1.DS18B20的供电方式: ps:寄生电源不是实际的电源器件,而是一种供电方式,即通过数据线供电. 如下面的两张图片所示,分别为外部供电模式下单只和多只DS18B20测温系统的典型电路连接图. ( ...
- openstack名称发音收集
MariaDB: maria['mɛərɪr] Corosync: coro[kə'roʊ] sync[sɪŋk] pacemaker: [ˈpesˌmekɚ] galera: ...
- javascript模拟鼠标双击事件
通常我们在做开发的时候需要通过单击切换对立事件,简单做了一个模型. <!DOCTYPE html> <html> <head> <title>javas ...