spring整合kaptcha验证码的实现

论坛 期权论坛 脚本     
niminba   2021-5-23 02:58   1614   0

kaptcha简介:

kaptcha是一个很有用的验证码生成工具,由于它有许多可配置项,所以用它可以简单快捷的生成各式各样的验证码。

开发工具及使用的核心技术:

1、eclipse

2、mybatis

3、spring

4、springmvc

5、kaptcha

本文将介绍kaptcha两种使用方式:

方式一:在 spring-kaptcha.xml 中配置

方式二:在 web.xml 中配置

正式开始:

 一、搭骨架

1、添加依赖:

<!-- 验证码 -->
  <dependency>
   <groupId>com.github.penggle</groupId>
   <artifactId>kaptcha</artifactId>
   <version>2.3.2</version>
  </dependency>

要使用kaptcha验证码,除了spring和mybatis那些依赖,只需引入这一个即可。

2、完善配置文件

①spring-dao.xml

<!-- 配置整合mybatis过程 -->
 
 <!-- 1、配置数据库相关参数properties的属性:${url} -->
 <context:property-placeholder location="classpath:jdbc.properties" />
 
 <!-- 2、配置数据库连接池 -->
 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
  <!-- 配置连接池属性 -->
  <property name="driverClass" value="${jdbc.driver}"/>
  <property name="jdbcUrl" value="${jdbc.url}"/>
  <property name="user" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
  
  <!-- c3p0连接池的私有属性 -->
  <property name="maxPoolSize" value="30"/>
  <property name="minPoolSize" value="10"/>
  <!-- 关闭连接不自动commit -->
  <property name="autoCommitOnClose" value="false"/>
  <!-- 获取连接超时时间 -->
  <property name="checkoutTimeout" value="10000"/>
  <!-- 当获取连接失败时重试次数 -->
  <property name="acquireRetryAttempts" value="2"/>
 </bean>
 

 <!-- 3、配置mybatis的sqlSessionFactory -->
 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <!-- 自动扫描mappers.xml文件 -->
  <property name="mapperLocations" value="classpath:mappers/*.xml"/>
  <!-- mybatis配置文件 -->
  <property name="configLocation" value="classpath:mybatis-config.xml"/>
  <!-- 扫描entity包,使用别名 -->
  <property name="typeAliasesPackage" value="com.zhu.kaptcha.entity"></property>
 </bean>

 <!-- 4、DAO接口所在包名,Spring会自动查找其下的类 -->
 <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.zhu.kaptcha.dao" />
  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
 </bean>

②spring-service.xml

<!-- 扫描service包下所有使用注解的类型 -->
 <context:component-scan base-package="com.zhu.kaptcha.service"/>
 
 <!-- 事务管理 -->
 <bean id="transactionManager"
  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource" />
 </bean>
 
 <!-- 配置基于注解的声明式事物 -->
 <tx:annotation-driven transaction-manager="transactionManager"/>

③spring-web.xml

<!-- 配置springmvc -->
  <!-- 1、开启springMvc注解模式 -->
  <mvc:annotation-driven />
  
   <!--2、定义视图解析器 -->
   <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/"/>
     <property name="suffix" value=".jsp"/>
   </bean>
  
  
  <!-- 3、扫描web相关的bean -->
  <context:component-scan base-package="com.zhu.kaptcha.controller"/>

④web.xml

<servlet>
    <servlet-name>spring-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

  <!-- 编码过滤器 -->
  <filter>
    <filter-name>encodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <async-supported>true</async-supported>
    <init-param>
      <param-name>encoding</param-name>
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1060120
帖子:212021
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP