zoukankan      html  css  js  c++  java
  • spring mvc实现登录+异常

    登录页面login.jsp在webroot下

    <body>    
        <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>
    
    </body>

    map的遍历方法

    <body>    
        <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>
    
    </body>
    
    遍历map的方法
    
    //登录方法
            @RequestMapping(value="/login",method=RequestMethod.POST)
            public String login(@RequestParam String userName,@RequestParam String password,HttpSession session){
            
                //方法一:map遍历
                //比对userList  遍历map(key value) 
                //userList.values();//拿到一个conllection
                for(User user:userList.values()){
                    if(userName.equals(user.getUserName()) && password.equals(user.getPassword())){
                        System.out.println("登录成功!");
                        break;
                    }
                }
                
                //方法二:userList.keySet() 得到key的集合,遍历set就行了
                for(String key:userList.keySet()){
                    System.out.println("key-->"+key+"value-->"+userList.get(key).getUserName());
                }
                
                //方法三:iterator遍历
                Iterator<Map.Entry<String, User>> itor = userList.entrySet().iterator();
                while(itor.hasNext()){
                    Map.Entry<String, User> entry = itor.next();
                    System.out.println("key-->"+entry.getKey()+"value-->"+entry.getValue().getUserName());
                }
                //方法四:遍历userList.entrySet()
                for(Map.Entry<String, User> entry:userList.entrySet()){
                    System.out.println("key-->"+entry.getKey()+"value-->"+entry.getValue().getUserName());
                }
                
                return "redirect:/user/list";//跳转到展示页面
            }
    View Code

    登录

    //登录方法
            @RequestMapping(value="/login",method=RequestMethod.POST)
            public String login(@RequestParam String userName,@RequestParam String password,HttpSession session){
            
                boolean flag = false;
                
                for(User user:userList.values()){
                    if(userName.equals(user.getUserName()) && password.equals(user.getPassword())){
                        System.out.println("登录成功!");
                        session.setAttribute("loginUser", user);
                        flag = true;
                        break;
                    }
                }
                //
                if(!flag){
                    throw new UserException("用户名,密码不正确,请重新输入!!");
                    //抛出一个runtimeException异常,
                }
        
                return "redirect:/user/list";
            }

    UserException(开发中,异常都是要自己写的)extends RuntimeException  alt+shirt+s  找到superclass继承父类方法

    UserException

    异常抛出后,显示出来很难看,我们最好自己创建一个页面error.jsp来接收异常

    <body>    
        <h1>${e.message }</h1>
    </body>

    这里用的是局部异常处理

    //局部异常处理:只针对某一个controller
            @ExceptionHandler(value={UserException.class})
            public String handlerException(UserException e,HttpServletRequest request){
                request.setAttribute("e", e);//异常放到request里面
                return "error";
            }

     全局异常处理

    error.jsp界面

    ${exception.message }

    在springmvc-servlet.xml配置文件中加入全局异常

    <!-- 全局异常SimpleMappingExceptionResolver 注意是serlvet的包 -->
        <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
            <property name="exceptionMappings">
                <props>
                    <prop key="pojo.UserException">error</prop>
                </props>
            </property>
        </bean>

    有全局异常的时候要把局部异常的方法注释了

  • 相关阅读:
    委托
    Ajax TreeView绑定数据库(一)
    递归算法算出1,1,2,3,5.........(二)
    Ajax技术之深入浅出
    javasript读写xml
    递归算法求阶乘(一)
    关于.Net中的实际开发
    ASP.NET Form表单验证
    js 实现自动合并相同的行
    递归快速排序
  • 原文地址:https://www.cnblogs.com/xuerong/p/4953433.html
Copyright © 2011-2022 走看看