HTML+SSM + MySQL的简单登录(一)

  • Post author:
  • Post category:mysql




对原始的

Servlet+MVC+JDBC

的登录


Demo


进行改造,使用


SSM


框架进行实现。

原始代码位置:

http://blog.csdn.net/u014360189/article/details/76216088


一、


配置

Spring





使用


Spring

来配置


bean


组件,完成各层类及其使用的下层属性的注入。


主要有:


  1. LoginServlet

    的配置,


    LoginServlet





    loginService


    属性的注入


  2. LoginServiceImp

    的配置,


    LoginServiceImp





    loginDAO


    属性的注入


  3. LoginDAOImp

    的配置


1.


配置

web.xml





web.xml

中进行


Spring


核心配置,主要配置:


Listener




ContextLoaderListener


Context-param




contextConfigLocation


核心代码:

  <!-- spring核心配置 -->
 <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-context.xml</param-value>
  </context-param>
  
  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>




2.

创建

spring-contet.xml

文件


<?xml version="1.0" encoding="UTF-8"?>
<!-- 
    必须有xmlns和xmlns:xsi这两个
    xmlns后面紧跟的是命名空间 命名空间对应的URI是一个存放XSD的地址
    xsi:shemaLocation后面跟的是命名空间对应class的文件位置 
    schemaLocation提供了一个xml 命名空间到对应的XSD(Xml Schema Definition)文件的一个映射,它的值由一个或多个URI引用对组成,
    两个URI之间以空白符分隔(空格和换行均可)。第一个URI是定义的 XML命名空间的值,第二个URI给出Schema文档的实际位置,
    Schema处理器将从这个位置读取Schema文档,该文档的targetNamespace必须与第一个URI(XML命名空间的值)相匹配。
    
    我们打开Spring-aop-4.1.6RELEASE.jar (这是我本地的版本),这个包下有一个META_INF文件夹,其中有两个文件:spring.handlers和spring.schemas。
    Spring是把XSD文件放到本地了,再在spring.schemas里做了一个映射,优先从本地里加载XSD文件。
-->
<beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
                        http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="dbUtil" class="com.lizem.check_right.tools.DButil">
        <property name="driver" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/test"></property>
        <property name="username" value="root"></property>
        <property name="pwd" value="root"></property>
    </bean>
    
    <bean id="loginDAO" class="com.lizem.check_right.dao.LoginDAOImp">
        <property name="db" ref="dbUtil"></property>
    </bean>
    
    <bean id="loginService" class="com.lizem.check_right.service.LoginServiceImp">
        <property name="loginDAO" ref="loginDAO"></property>
    </bean>
    
    <bean id="loginServlet" class="com.lizem.check_right.controller.LoginServlet">
        <property name="loginService" ref="loginService"></property>
    </bean>
    
</beans>                        
 





3.

给类属性添加


getters





setters


方法



主要有:




1. LoginServlet




loginService


属性


2. LoginServiceImp




loginDAO


属性


3. LoginDAOImp

中的


dbUtil


属性


4.DButil

中的数据库连接参数



这里把之前的类中给注入的属性


new

对象的代码可以去掉了,直接使用就行。


配置到这里基本上已经完工了,但是如果此时运行代码会发现


loginServlet

中的


loginService


报空指针异常。


原因是配置在


web.xml

中的


loginServlet


是由


web


容器创建的,而配置在


spring-contet.xml


中的


loginSrvlet


是由


Spring


容器创建的,两个不是同一个,那么使用的


loginServlet


其实是


web


容器创建的那个,自然


loginService


会报空指针了。在网上查了下


Spring





servlet


配置,可以参考下面的解决方法。


解决方法:


http://blog.csdn.net/xwl617756974/article/details/7451773


4.

创建一个

Spring




bean


组件到


servlet


的代理


具体方法参考上面的解决方法。


源代码位置:


链接:http://pan.baidu.com/s/1jIKIcZW 密码:bu2n



版权声明:本文为u014360189原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。