欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

利用Spring IOC技术实现用户登录验证机制

程序员文章站 2024-03-12 10:22:14
利用 spring ioc 技术实现用户登录的验证机制,对用户进行登录验证。 首先利用 spring 的自动装配模式将 user 对象注入到控制器中,然后将用户输入的用户...

利用 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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。