1.创建一个异常,继承 java.lang.RuntimeException
然后再会出现问题的语句中,抛出异常 throw new userExceptIon("异常信息,例如用户名不存在");
在对集合判断是否包含有某个键值,可以用containsKey(键值名称)来判断 如果没有返回假
用get(键值名称)可获取到该键对应的数据或者对象。
2.局部异常处理
@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(String username,String password){
System.out.print(username+" "+password);
if(!users.containsKey(username))
throw new UserException("用户名不存在");
else if(!users.get(username).getUserpassword().equals(password)){
throw new UserException("密码错误");
}
return "redirect:/user/users";
}
//只对UserException进行处理
@ExceptionHandler(value={UserException.class})
public String handExection(UserException e,HttpServletRequest req){
req.setAttribute("e", e);
return "exception";
}
在login.jsp中
<form action="user/login" method="post">
username<input type="text" name="username"><br>
password<input type="password" name="password"><br>
<input type="submit" value="登录">
</form>
3.全局异常处理
在springMVC配置文件中配置异常映射
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<props>
<!---捕获到UserException的异常就用web目录下的error.jsp来进行显示 -->
<prop key="com.tgb.web.mode.UserException">error</prop>
</props>
</property>
</bean>