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

对原始的Servlet+MVC+JDBC的登录Demo进行改造,使用SSM框架进行实现。

原始代码位置:

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

一、配置Spring

 

使用Spring来配置bean组件,完成各层类及其使用的下层属性的注入。

主要有:

  1.  LoginServlet 的配置,LoginServletloginService属性的注入
  2. LoginServiceImp的配置,LoginServiceImploginDAO属性的注入
  3. LoginDAOImp的配置

1. 配置web.xml

web.xml中进行Spring核心配置,主要配置:

ListenerContextLoaderListener

Context-paramcontextConfigLocation

核心代码:

  <!-- 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. LoginServletloginService属性

     2. LoginServiceImploginDAO属性

     3. LoginDAOImp中的dbUtil属性

     4.DButil中的数据库连接参数

 

这里把之前的类中给注入的属性new对象的代码可以去掉了,直接使用就行。

配置到这里基本上已经完工了,但是如果此时运行代码会发现loginServlet中的loginService报空指针异常。

原因是配置在web.xml中的loginServlet是由web容器创建的,而配置在spring-contet.xml中的loginSrvlet是由Spring容器创建的,两个不是同一个,那么使用的loginServlet其实是web容器创建的那个,自然loginService会报空指针了。在网上查了下Springservlet配置,可以参考下面的解决方法。

解决方法:http://blog.csdn.net/xwl617756974/article/details/7451773

4. 创建一个Springbean组件到servlet的代理

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

源代码位置:

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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值