用Spring MVC实现用户登录的完整实例 本例子是再Eclipse中建立一个Tomcat工程,来讲解Spring MVC 的全过程,实例代码如下:
<一>编写日记文件放在myMVC/WEB-INF/src下
#指定日志输入文件的大小
log4j.appender.stdout.MaxFileSize=500KB
log4j.appender.stdout.MaxBackupIndex=50
log4j.appender.stdout.Append=true
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%-5p]%d{yyyy-MM-ddHH:mm:ss}%c-%m%n
#定义log4j的显示方式
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#指定日志输入文件的名称
log4j.appender.A1.File=org.log
#指定日志输入文件的大小
log4j.appender.A1.MaxFileSize=500KB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.Append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601}-[%P][%C{1}]-%m%n
#定义log4j的显示方式
log4j.appender.A1=org.apache.log4j.RollingFileAppender
#指定日志输入文件的名称
log4j.appender.A1.File=gc.log
#指定日志输入文件的大小
log4j.appender.gc.MaxFileSize=500KB
log4j.appender.gc.MaxBackupIndex=50
log4j.appender.gc.Append=true
log4j.appender.gc.layout=org.apache.log4j.PatternLayout
log4j.appender.gc.layout.ConversionPattern=%d{ISO8601}-[%P][%C{1}]-%m%n
<二>配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化参数 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<三>编写登录页面myMVC/gc/jsp目录下login.jsp
<%@taglib prefix="spring" uri="/spring"%>
<%@ page contentType="text/html;charset=GBK"%>
<html>
<head><title><spring:message code="title"/></title></head>
<body>
<form action="/myMVC/login.do" name="User" method="post">
<spring:bind path="command.username">
<spring:message code="username"></spring:message>
<input type="text" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<spring:bind path="command.password">
<spring:message code="password"></spring:message>
<input type="password" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<spring:bind path="command.password2">
<spring:message code="password2"></spring:message>
<input type="password" name="${status.expression }"value="${status.value }"/>
<br>
<font color="red"><b>${status.errorMessage }</b></font><br>
</spring:bind>
<input type="submit" value="<spring:messagecode='submit'/>"/>
</form>
</body>
</html>
<四>编写显示成功的页面myMVC/gc/jsp目录下success.jsp
<%@taglib prefix="spring" uri="/spring"%>
<%@page contentType="text/html;charset=GBK"%>
<html>
<head><title><spring:message code="title"></spring:message></title></head>
<body>
<spring:bind path="command.username">
<h3><spring:message code="welcome"></spring:message>{status.value }<spring:message code="loginSuccess"/></h3><br>
</spring:bind>
</body>
</html>
<五>编写存放用户登录信息的Bean,在com.gc.action包中建立Java文件User.java
package com.gc.action;
publicclass User {
private String username=null;
private String password=null;
private String password2=null;
public String getPassword() {
returnpassword;
}
publicvoid setPassword(String password) {
this.password = password;
}
public String getPassword2() {
returnpassword2;
}
publicvoid setPassword2(String password2) {
this.password2 = password2;
}
public String getUsername() {
returnusername;
}
publicvoid setUsername(String username) {
this.username = username;
}
}
<六>在com.gc.action包下编写用户验证类UserValidator.java
package com.gc.action;
import com.gc.action.User;
import org.springframework.validation.Validator;
import org.springframework.validation.Errors;
publicclass UserValidator implements Validator {
publicboolean supports(Class clazz){
return clazz.equals(User.class);
}
publicvoid validate(Object obj,Errors errors){
User user=(User)obj;
if(!"tang".equals(user.getUsername())){
errors.rejectValue("username", "usernameerror", null, "用户名不正确");
}
if(!"123456".equals(user.getPassword())){
errors.rejectValue("password", "passworderror", null, "密码不正确");
}
if(!user.getPassword().equals(user.getPassword2())){
errors.rejectValue("password2", "password2error", null, "2次输入密码不一致");
}
}
}
<七>在com.gc.action包下编写用户登录逻辑Login.java
package com.gc.action;
import java.util.Map;
import org.apache.log4j.Logger;
import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
publicclass Login extends SimpleFormController{
private Logger logger=Logger.getLogger(this.getClass().getName());
public ModelAndView onSubmit(Object command,BindException errors)throws Exception{
User user=(User)command;
Map modle=errors.getModel();
modle.put("user", user);
returnnew ModelAndView(getSuccessView(),modle);
}
}
<八>myMVC/WEB-INF目录下编写配置文件dispatcherServlet-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http:www.springframework.org/dtd/spring-bean.dtd">
<beans>
<!-- 定义国际化消息 -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename">
<value>messages</value>
</property>
</bean>
<!-- 定义映射 -->
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mapping">
<props>
<prop key="login.do">login</prop>
</props>
</property>
</bean>
<!-- 定义视图及路径 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass">
<value>org.springframework.web.servlet.view.InternalResourceView</value>
</property>
<!-- JSP都放在WEB-INF/jsp目录下 -->
<property name="prefix">
<value>/WEB-INF/jsp</value>
</property>
<!-- JSP页面的后缀都四.JSP -->
<property name="suffix">
<value>.jsp</value>
</property>
</bean>
<!-- 定义控制器 -->
<bean id="login" class="com.gc.action.Login">
<property name="commandClass">
<value>com.gc.action.User</value>
</property>
<!-- 指定验证类 -->
<property name="validator">
<ref bean="userValidator"/>
</property>
<!-- 指定失败要返回的页面 -->
<property name="formView">
<value>login</value>
</property>
<property name="successView">
<value>success</value>
</property>
</bean>
<!-- 定义验证类 -->
<bean id="userValidator" class="com.gc.action.UserValidator"></bean>
</beans>
<九>myMVC/WEB-INF/src目录下编写资源文件messages.properties及messages_en_US.properties
messages.properties
title=SpringMVC实例
username=输入用户名:
password=输入密码:
password2=确认密码:
submit=提交
welcome=欢迎
loginSuccess=登录成功
usernameerror=用户名不正确
passworderror=密码不正确
doublepassword=2次密码不一致
native2ascii工具转码后
title=SpringMVC\u5b9e\u4f8b
username=\u8f93\u5165\u7528\u6237\u540d:
password=\u8f93\u5165\u5bc6\u7801:
password2=\u786e\u8ba4\u5bc6\u7801:
submit=\u63d0\u4ea4
welcome=\u6b22\u8fce
loginSuccess=\u767b\u5f55\u6210\u529f
usernameerror=\u7528\u6237\u540d\u4e0d\u6b63\u786e
passworderror=\u5bc6\u7801\u4e0d\u6b63\u786e
doublepassword=2\u6b21\u5bc6\u7801\u4e0d\u4e00\u81f4
messages_en_US.properties
title=SpringMVC
username=username
password=password
password2=password2
submit=submit
welcome=welcome
loginSuccess=loginSuccess
usernameerror=usernameerror
passworderror=passworderror
doublepassword=doublepassworderror
分享到:
相关推荐
以上就是使用Spring MVC实现用户登录的完整实例的详细步骤,涵盖了模型、视图、控制器以及安全方面的知识。通过这个实例,开发者可以更好地理解Spring MVC的工作原理,并能以此为基础构建更复杂的Web应用程序。
总的来说,"spring MVC的HelloWorld完整实例"提供了一个简单的起点,帮助开发者了解Spring MVC的工作原理和基本配置。通过这个实例,你可以学习到如何创建控制器、配置Spring MVC、处理请求和返回响应,以及如何在...
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
在本文中,我们将深入探讨如何将Spring MVC、Spring和Hibernate这三大流行框架整合在一起,以构建一个完整的登录实例。这个实例旨在提供一个清晰、简洁且易于理解的代码结构,帮助初学者快速上手。 首先,Spring ...
在本项目中,我们主要探讨的是如何利用Spring MVC和Spring Security框架构建一个基本的无数据库登录系统。Spring MVC是Spring框架的一部分,用于处理Web应用程序的请求-响应模型,而Spring Security则是一个强大的...
在此项目中,Spring MVC用于处理用户登录注册的HTTP请求,实现前后端交互。 3. **Spring JDBC**:Spring JDBC模块提供了一层抽象,简化了与数据库的交互。它包含模板类如JdbcTemplate,用于执行SQL语句,并处理结果...
在Spring MVC框架中,注解的使用极大地简化了配置,提高了开发效率。Spring MVC通过注解可以实现控制器、方法映射、模型数据绑定、视图解析等关键功能。本实例将深入探讨Spring MVC中常见的注解及其应用。 1. `@...
这篇文章将教你快速地上手使用 Spring 框架. 如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring...
**Spring MVC 框架实例详解** Spring MVC 是 Spring 框架的重要组成部分,它是一个用于构建 Web 应用程序的 Model-View-Controller (MVC) 模型的实现。在基于 Spring 2.5 的项目中,XML 配置是主要的配置方式,相比...
在整合Spring MVC、Spring和Spring JDBC的实例中,你可能会看到以下几个关键部分: 1. **配置文件**:包括Spring的主配置文件(如`applicationContext.xml`),其中定义了Bean的配置,包括DataSource、JdbcTemplate...
该实例的价值在于提供了完整的Spring MVC + iBatis的集成示例,包括项目的构建配置、依赖管理以及核心组件的配置。这对于初学者理解这两个框架的协同工作和实际应用非常有帮助,同时对有经验的开发者来说,也是一个...
本实例将深入探讨如何实现一个完整的Spring MVC CRUD操作。 首先,我们来了解CRUD操作的基本概念。CRUD是Create(创建)、Read(读取)、Update(更新)和Delete(删除)的首字母缩写,代表了数据库操作中最基本的...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为开发者提供了模型-视图-控制器(MVC)架构,使开发人员能够更好地组织和分离应用程序的业务逻辑、数据处理和用户界面。Spring MVC是Spring框架的一个核心组件,...
总结来说,Spring MVC实例展示了如何通过注解驱动开发实现Web应用的路由控制、数据绑定、视图解析以及数据库操作。这个实例对于理解Spring MVC的工作原理和实际应用是非常有帮助的,也是Java Web开发者必备的技能之...
这个"Spring MVC 基础实例源码01"的资源很可能是为了帮助初学者理解Spring MVC的核心概念和基本用法。下面我们将详细探讨Spring MVC的一些关键知识点。 1. **MVC模式**:MVC(Model-View-Controller)是一种设计...
使用maven与MyEclipse整合ssm(Spring MVC、Spring、Mabatis)三大框架并实现用户注册实例源码下载,里面包含一个src目录、pom.xml文件,以及readme.txt。请先阅读readme.txt里面的内容.
在Spring MVC实例中,我们通常会遇到以下关键知识点: 1. **MVC架构**:MVC是一种设计模式,将应用分为三个主要部分:Model(模型)负责业务逻辑,View(视图)负责展示结果,Controller(控制器)处理用户请求并...
1. 该java工程师基于Maven的Spring + Spring MVC + Mybatis的工程实例 通过一个简单的登录功能了解搭建spring + mybatis的各个部分。 2. 数据库使用的是mysql5.6, 实例涉及一张表 t_user,请查看sqlScript中的脚本...
在本章节中,我们将深入探讨如何使用 Spring MVC 实现增删改查(CRUD)功能。 ### 一、Spring MVC 概述 1. **DispatcherServlet**:Spring MVC 的核心组件,负责接收请求并分发到相应的处理器。 2. **Model-View-...