• Spring:验证用户登录


    利用 Spring IOC 技术实现用户登录的验证机制,对用户进行登录验证。

    首先利用 Spring 的自动装配模式将 User 对象注入到控制器中,然后将用户输入的用户名和密码与系统中限定的合法用户的用户名和密码进行匹配。

    当用户名与密码匹配成功时,跳转到登录成功页面;当用户名与密码不匹配时,跳转到登录失败的页面。

    1.创建 User 对象,定义用户名和密码属性,代码如下:

    package com.importnew;
    
    public class User {
        private String username;
        private String password;
        
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
    }

    2.创建控制器 TestUtil ,注入 User 对象并进行登录验证。代码如下:

    package com.importnew;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.mvc.AbstractController;
    
    public class TestUtil extends AbstractController{
        
        private User user;
    
        public User getUser() {
            return user;
        }
        public void setUser(User user) {
            this.user = user;
        }
        @Override 
        protected ModelAndView handleRequestInternal(HttpServletRequest arg0,
                HttpServletResponse arg1) throws Exception {
            String username = arg0.getParameter("username");
            String password = arg0.getParameter("password");
            if(username.equals(user.getUsername()) && password.equals(user.getPassword())){
                return new ModelAndView("yes");
            }else{
                
                return new ModelAndView("Error");
            }
        }
    }

    3.在 Spring 的配置文件 applicationContext.xml 中为 User 对象的属性赋值,并使用自动装配的方式在控制器 TestUtil 中注入 User 对象。代码如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
            
         <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
             <property name="prefix">
                 <value>/</value>
             </property>
             <property name="suffix">
                 <value>.jsp</value>
             </property>
         </bean>
         
         <bean id="user" class="com.importnew.User" >
             <property name="username">
                 <value>admin</value>
             </property>
             <property name="password">
                 <value>123</value>
             </property>
         </bean>
         
         <bean  autowire="byName"  id="testUtil" class="com.importnew.TestUtil"  >
             <property name="user">
                 <ref bean="user"/>
             </property>
         </bean>
    </beans>

    4.在 web.xml 文件中配置 applicationContext.xml 的自动加载,当项目启动后程序将自动加载配置文件中的信息。代码如下:

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
      <servlet>
              <servlet-name>dispatcherServlet</servlet-name>
              <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
              <init-param>
                  <param-name>contextConfigLocation</param-name>
                  <param-value>/applicationContext.xml</param-value>
              </init-param>
              <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
              <servlet-name>dispatcherServlet</servlet-name>
              <url-pattern>*.do</url-pattern>
      </servlet-mapping>
      
    </web-app>

    ———————————————————————————————————————————————————

    备注:

    TestUtil 中继承的类 AbstractController 需要引关于 spring-web-mvc 的 JAR 包支持。

    ////end

  • 相关阅读:
    什么是代理
    简易的屏幕适配
    SourceTree 操作简介
    project/target/product的简易区别
    iOS申请真机调试证书-图文详解
    关于UINavigationController的backBarButtonItem定制问题
    pat1008
    pat1005
    pat1019-简单模拟题
    ie6-ie8中不支持opacity透明度的解决方法
  • 原文地址:https://www.cnblogs.com/understander/p/5971734.html
Copyright © 2020-2023  润新知