myeclipse10.7上搭建spring mvc+hibernate开发框架(spring3+hibernate3.3),并完成登录验证功能

时间:2022-05-13 01:27:33


1.新建web project,选择javaEE6.0:


2.在新建的项目上右击,在弹出菜单中选择“add spring capabilities".

选择srping3.0版本;选择 Spring 3.0 AOP Libraries;Spring 3.0 Core Libraries;Spring 3.0 Persistence Core Libraries;Spring 3.0 Persistence JDBC Libraries 以及 Spring 3.0 Web Libraries(图中未显示)五个类库,选择Copy checked Library contents to project folder(TLds always copied),将类库添加到lib目录中。点击Next。(如果选择添加spring3.1,生成反式映射的时候,会出现DAO类没有注入sessionFactory的问题。如果要使用spring 3.1的包,可以选择添加spring 3.0,在选择类库的时候不选择任何一个类库,然后手动添加spring 3.1的包)


3.选择specify new or existing...单选框选择New,Folder选择WebRoot/WEB-INF,点击finish完成spring框架的添加(完成后spring框架添加后的WebRoot和WEB-INF文件夹上会有一个s图标)。


4.下面添加hibernate3.3框架,在添加hibernate3.3框架之前,先创建一个新的数据库连接驱动:选择界面右上角的MyEclipse Database Explorer persispective,进入数据库视图.


5.在左边的DB Browser视图中,点击右键,在弹出菜单中选择new。


6.填入数据库的url、用户名、密码,点击add jars加入Java连接MySQL的驱动jar包,点击finish完成。


7.然后添加hibernate3.3框架:右键选择项目名,在弹出菜单中选择MyEclipse->Add Hibernate Capabilities。


8.选择hibernate3.3;选择Copy checked Library Jars to project folder and add to build-path,将类库复制到到lib目录中。其他选择默认配置,点击next。


9.选择Spring configuration file,由spring托管hibernate。点击next。


10.选择Exisisting Spring configuration file,点击next.


11.DB Driver选择刚才建立的ssh驱动,其他选择默认配置,点击next。


12.取消勾选 Create SessionFactory class,点击finish完成hibernate3.3框架的添加。


13.这时spring MVC+hibernate框架已经全部添加完,但是还需要导入jackson包,才能实现spring servlet直接返回json的功能,但是导入前要将冲突的包先删除:右键点击项目,选择build-path——》configure build path ,选择library标签,选择com.springsource.org.codehaus.jackson.mapper-1.0.0.jar,点击remove,点击ok;然后在web-inf的lib目录下,删除com.springsource.org.codehaus.jackson.mapper-1.0.0.jar包。然后直接把jackson-all-x.x.x.jar包复制到lib目录下。(其实可以在第2步添加spring框架的时候少选择几个类库,只要不选择 Spring 3.0 Web Libraries,就不会添加com.springsource.org.codehaus.jackson.mapper-1.0.0.jar包,然后再导入所有需要的包即可,如果有重复就选择覆盖。可以只选择前四个spring类库,然后再导入所有需要的包;也可以只选择Spring 3.0 Core Libraries,再导入包,但是这种情况下由于缺少包,添加完hibernate框架后applicationContext.xml文件会报错,需要在导入所有包后,删除applicationContext.xml中错误的语句然后再撤销、保存,才能消除错误。 )


14.配置web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
<span style="white-space:pre"></span>xmlns="http://java.sun.com/xml/ns/javaee" 
<span style="white-space:pre"></span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
<span style="white-space:pre"></span>xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
<span style="white-space:pre"></span>http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name><span style="white-space:pre"></span>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  


  <listener>
      <listener-class>
        org.springframework.web.context.ContextLoaderListener
      </listener-class>
</listener>


<span style="white-space:pre"></span><servlet>  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>  
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/mvc/*</url-pattern>  
</servlet-mapping>  
<span style="white-space:pre"></span>
</web-app>


14.配置spring-servlet.xml文件:

<?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:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">


<!-- 自动扫描的包名 -->
<context:component-scan base-package="controller"></context:component-scan>
<!-- 默认的注解映射的支持 -->
<mvc:annotation-driven />
<!-- 视图解释类 -->
<bean
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/" />
<!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
<property name="suffix" value=".jsp" />
</bean>


</beans>


15. 这时ssh的配置工作已经完全完成,下面编写一个登陆验证的模块:

建立名为“controller”的包,在该包中新建类"Hello":

package controller;

import javax.annotation.Resource;

import model.User;
import model.UserDAO;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class Hello {
@Resource
UserDAO ud;
@RequestMapping(value = "/hello")
public String hello(int id,String pwd) {

User user = ud.findById(id);
if (user.getPwd().equals(pwd)) {
return "success";
}else {
return "error";
}
}
}


16.

在index.jsp中添加一个表单,代码如下:

<form action="login.action" method="post">

  <input type="text" name="id">

  <input type="password" name="password">

  <input type="submit" value="提交"> 

</form>


17.在webroot目录下新建两个代表登录成功和失败的页面,分别为“success.jsp”和"error.jsp";


18.启动服务器,在浏览器中打开首页,输入用户名和密码,如果正确则跳转到success.jsp,如果错误则跳转到error.jsp。

至此,一个spring mvc+hibernate框架的例子就完成了。