`
lucky520
  • 浏览: 35833 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

一个spring mvc登录示例

阅读更多

这个示例通过一个spring mvc用户登录的示例来学习是如何进行spring web开发的。

业务功能:用户通过登录页面输入用户名和密码,提交验证,登录成功则更新用户登录信息(登录ip,最后访问时间,积分+5)同时记录用户登录成功日志。整个demo分为四层,每层对应一个对立的配置文件。

 

持久层对象,也是域对象也叫实体。

持久层:spring整合多种流行ORM框架,如hibernate,ibatis等,此demo采用spring JDBC,通过调用org.springframework.jdbc.core.JdbcTemplate完成DAO的实现。配置文件命名(app-dao.xml)
业务层:以接口的方式,调用持久层DAO。接口的方式可增加代码的灵活性,同时有利于项目的管理以及变更。配置文件命名(app-service.xml)
表现层:采用spring mvc框架。层次与struts类似,不过要手动配置Spring MVC地址映射,控制器,以及URL与控制器映射定义。个人认为初次配置觉得较struts而言麻烦点,但很灵活。可以通过配置手动配置请求地址,响应地址。关于整个demo将上传,下面解释下各配置文件。

 

1.在spring中装配DAO(这里以userlogin-dao.xml为例)

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" >
<beans>
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		<property name="url" value="jdbc:mysql://localhost:3306/test"/>
		<property name="username" value="root"/>
		<property name="password" value="root"/>
	</bean>
	<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
		<property name="dataSource" ref="dataSource"/>		
	</bean>
	<bean id="userDao" class="com.me.dao.imp.UserDaoImp">
		<property name="jdbcTemplate" ref="jdbcTemplate"/>
	</bean>
	<bean id="userLogDao" class="com.me.dao.imp.UserLogDaoImp">
		<property name="jdbcTemplate" ref="jdbcTemplate"/>
	</bean>
</beans>

 

这里主要想说的的是jdbcTemplate,因为此demo采用spring JDBC实现的持久层,而spring JdbcTemplate封装了jdbc的操作,本身只需要一个DataSource.

 

2.配置业务层(这里以userlog-service.xml为例)

...

<beans>
<!--事务管理器:对目标类方法进行事务管理-->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
<!--需要代理哦业务目标类-->
	<bean id="userServiceTarget" class="com.me.service.imp.UserServiceImp">
		<property name="userDao" ref="userDao"/>
		<property name="logDao" ref="userLogDao"></property>
	</bean>
<!--配置声明式事务-->
	<bean id="userService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
		<property name="transactionManager" ref="transactionManager"></property>
		<property name="target" ref="userServiceTarget"/>
<!--声明式事务的规则,属性、值-->
		<property name="transactionAttributes">
			<props>
				<prop key="findUserByUserName">
				PROPAGATION_REQUIRED,readOnly
				</prop>
				<prop key="checkUser">PROPAGATION_REQUIRED,readOnly</prop>
				<prop key="loginSuccess">PROPAGATION_REQUIRED</prop>
			</props>
		</property>
	</bean>
</beans>

 大家知道凡是操作数据库都要涉及到事务处理,而利用spring我们将不用在代码实现中担心这一点,通过spring声明式事务配置即可。这里需要额外提一下transactionAttributes是定义目标业务类那些方法需要业务的支持以及事务控制属性。PROPAGATION_REQUIED是用得最多的事务传播类型,表示业务方法在当前线程中查看是否有事务,如果有,就利用这个事务,否则就创建一个新事务。readOnly表示是只读事务,可以提高运行效率。此外,在配置方法名时,可实用“*”,不过不指定方法就表示对所有方法进行事务管理。

 

3.配置Spring MVC 框架
1)修改web.xml,以便web容器启动时自动启动Spring容器。

 <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:userlogin-dao.xml,classpath:userlog-service.xml</param-value>
</context-param>
<listener>
        <listener-class>
	org.springframework.web.context.ContextLoaderListener
        </listener-class>
</listener>

 2)配置spring mvc地址映射,与struts一样,spring mvc也需要一个servlet截获URL,修改web.xml.

<servlet>
      <servlet-name>userlogin</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
      <servlet-name>userlogin</servlet-name>
      <url-pattern>*.html</url-pattern>
</servlet-mapping>

 需要说明的像struts一样,spring也需要一个类似struts-config.xml的配置文件,但命名可有讲究的哦,要采用<servlet-name>-servlet.xml以这个例子来说则需要在/WEB-INF目录下创建一个userlogin-servlet.xml,但这个配置文件无需在web.xml配置上下文参数,因为spring mvc的servlet会自动将userlogin-servlet.xml与spring其他配置文件(userlogin-dao.xml,userlog-service.xml)进行拼装。

 

3)在配置文件中声明控制器(userlogin-servlet.xml)

<beans>
	<bean name="loginController" class="com.me.web.LoginController">
	 	<property name="userService" ref="userService"></property>
	</bean>
	<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/loginController.html">loginController</prop>
			</props>
		</property>
	</bean>
	<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/jsp/"/>
		<property name="suffix" value=".jsp"/>
	</bean>
</beans>

 

这个配置说明/loginController.html的请求将交由loginController类处理,处理结果返回一个ModelandView("param1","param2",param3)对象,带有三个参数,分别表示重定向视图逻辑名,保存在request范围内的一个变量名,变量的值。而viewResolver中就是在配置重定向的页面,它的url是:prefix+parma1+suffix.此demo中登录成功后将重定向到{basepath}/jsp/main.jsp

 

最后处理下乱码问题。此demo采用的是uft-8的字符编码,后来还是出现了乱码,于是调用spring 中的过滤器进行过滤。修改web.xml.

<filter>
       <filter-name>encodingFilter</filter-name>
       <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
	<param-name>encoding</param-name>
	<param-value>utf8</param-value>
      </init-param>
</filter>
<filter-mapping>
      <filter-name>encodingFilter</filter-name>
      <url-pattern>/jsp/*</url-pattern>
</filter-mapping>	
 <filter-mapping>
      <filter-name>encodingFilter</filter-name>  
      <url-pattern>*.html</url-pattern>
</filter-mapping>
<filter-mapping>
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>*.jsp</url-pattern>
</filter-mapping>

 

 初次接触spring mvc,还在学习。将上传此demo与大家分享、探讨。

 

 

分享到:
评论
5 楼 werty45775 2016-06-23  
你讲的spring配置我看懂啦,赞。
4 楼 liuya1985ya 2013-05-26  
要好好的向你学习
3 楼 macjava85 2012-04-19  
优秀!思维逻辑很清晰!感谢分享!
2 楼 lucky520 2008-10-15  
278506470 写道

要好好的向你学习! 我一定要好好的用功!

谢谢师兄的支持!
1 楼 278506470 2008-10-15  
要好好的向你学习!

我一定要好好的用功!

相关推荐

    spring MVC简单示例

    在本示例中,我们将深入探讨Spring MVC的基本概念、配置以及如何创建一个简单的应用程序。 1. **Spring MVC 概述** Spring MVC 是 Spring 框架的一部分,它简化了开发和测试Web应用程序的过程。通过分离业务逻辑、...

    spring mvc官方示例

    - **@Controller**:标记在类上,表示该类是一个Spring MVC的控制器。 - **@RequestMapping**:用于映射HTTP请求,可以标注在类或方法上,定义请求的URL模式。 - **@GetMapping, @PostMapping, @PutMapping, @...

    Spring MVC简单示例

    在这个基于注解的简单示例中,我们将探讨如何使用Spring MVC创建一个基本的控制器、处理HTTP请求,并展示视图。让我们深入理解Spring MVC的核心概念和关键组件。 首先,Spring MVC是Spring框架的一部分,它采用模型...

    spring mvc入门示例

    Spring MVC 是一个强大的Java Web开发框架,用于构建可维护、高性能和灵活的Web应用程序。它作为Spring框架的一部分,提供了一种模型-视图-控制器(MVC)架构,帮助开发者将业务逻辑、用户界面和数据访问分离开来,...

    spring3.0Mvc简单示例

    Spring 3.0 MVC 是一个基于Java的企业级框架,用于构建Web应用程序,特别是控制器、视图和模型组件的分离。这个“spring3.0Mvc简单示例”旨在帮助开发者快速理解并入门Spring MVC的基本概念和操作流程。让我们深入...

    maven + spring mvc整合示例代码下载.zip

    【标题】:“maven + spring mvc整合示例代码下载.zip”是一个包含使用Maven构建并集成Spring MVC框架的示例项目的压缩包。这个项目旨在帮助开发者理解和实践如何在Java Web开发中结合这两个强大的工具。 【描述】...

    IDEA 搭建Spring MVC环境示例二

    Spring MVC是Spring框架的一个模块,它为构建Web应用程序提供了模型-视图-控制器(MVC)架构。Maven则是一个强大的项目管理和依赖管理工具,能够帮助我们简化项目的构建过程。 首先,确保你已经安装了IntelliJ IDEA...

    Spring MVC入门(登录示例)

    在这个入门教程中,我们将通过一个简单的登录示例来学习 Spring MVC 的基本概念和工作流程。 ### 1. Spring MVC 架构 Spring MVC 包含了以下组件: - **DispatcherServlet**:它是整个流程的入口,负责接收请求并...

    Spring MVC示例

    综上所述,这个"Spring MVC示例"项目是一个完整的Web应用程序实例,涵盖了Spring MVC的核心功能,以及附加的定时任务和文件操作功能。开发者可以通过研究这个示例,深入了解Spring MVC的工作原理和实践方法。

    spring mvc 框架示例

    Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是...

    Spring MVC框架示例

    总的来说,这个Spring MVC框架示例项目提供了基本的Web应用结构,你可以在此基础上添加自己的业务逻辑和视图,快速启动一个新的Web项目。通过理解和学习这些核心概念,你将能够更熟练地驾驭Spring MVC框架,构建出...

    spring mvc 完整示例 前台+后台

    总结,"spring mvc 完整示例 前台+后台"项目展示了如何使用Spring MVC和jQuery构建一个基本的Web应用,实现了用户登录和显示用户列表的功能。这个示例涵盖了从后端控制器设计到前端AJAX交互的多个关键知识点,是学习...

    IDEA 搭建Spring MVC环境示例1

    通过这个过程,我们创建了一个简单的Spring MVC应用,并配置了必要的组件,如Controller、DispatcherServlet和视图解析器。随着对Spring MVC的深入学习,你可以添加更多的功能,如数据访问、模板引擎、安全控制等,...

    spring MVC CRUD示例

    这个是我学习过程中的一个示例,由于对AOP的概念不是很清楚,这个例子并没有过多的涉及AOP。所以希望有人能指点我,交个朋友:QQ:657861643 本例用的开发工具是 MyEclipse6.0 tomcat6.0 ,里面的包都为MyEclipse中...

    基本的spring mvc + spring security实现的登录(无数据库)

    在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...

    spring mvc示例

    Spring MVC 是一个基于Java的轻量级Web应用程序框架,它为构建RESTful应用程序提供了强大的支持。这个框架是Spring生态系统的一部分,旨在简化MVC(Model-View-Controller)架构的实现,提高了开发者的效率和代码的...

    Spring MVC 第一个例子

    Spring MVC 是 Spring 框架的一个重要模块,它为构建基于Java的Web应用程序提供了一个强大的模型-视图-控制器(MVC)架构。Spring MVC 的设计允许开发者将业务逻辑、数据处理和用户界面分离,从而实现更好的可维护性...

    spring mvc用户登录示例

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring ...这个示例是学习 Spring MVC 开发的一个良好起点,希望对你的学习有所帮助。如果你对 Spring MVC 或者其他 IT 相关话题有更多疑问,欢迎继续提问。

Global site tag (gtag.js) - Google Analytics