实现一个spring 的登陆事例

1.在eclipse下新建动态网页工程springmvc
 2.需要导入jar包.
    aopalliance.jar;commons-beanutils.jar;commons-collections.jar;commons-dbcp.jar;commons-digester.jar;
commons-lang.jar;commons-logging.jar;commons-pool.jar;commons-validator.jar;freemarker.jar;jaxen-1.1-beta-7.jar;
jstl.jar;junit.jar;log4j-1.2.13.jar;servlet-api.jar;spring.jar;spring-aspects.jar;spring-mock.jar;spring-web.jar
standard.jar;xalan.jar;xercesImpl.jar;xml-apis.jar
 3.修改web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>
    springmvc</display-name>
    <servlet>
           <servlet-name>Dispatcher</servlet-name>
           <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
           
           <init-param>
             <param-name>contextConfigLocation</param-name>
             <param-value>/WEB-INF/Config.xml</param-value>
           </init-param>
    </servlet>
    
    <servlet-mapping>
       <servlet-name>Dispatcher</servlet-name>
       <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    
    <jsp-config>
       <taglib>
            <taglib-uri>http://java.sun.com/jstl/core_rt</taglib-uri>
            <taglib-location>/WEB-INF/tlds/c.tld</taglib-location>
       </taglib>
    </jsp-config>
</web-app>

其中jsp-config 定义引用 c.tld标签,所以需要在 WEB-INF目录下新建tlds目录后拷贝c.tld到tlds目录下.

4.对应 < param-value > /WEB-INF/Config.xml </ param-value >在WEB-INF下新建Config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
   <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass">
           <value>
              org.springframework.web.servlet.view.JstlView
           </value>
        </property>
        
        <property name="prefix">
            <value>/WEB-INF/view/</value>
        </property>
        
        <property name="suffix">
           <value>.ftl</value>
        </property>
        
   </bean>
   
 
   <bean id="urlMapping"
        class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
        <property name="mappings">
           <props>
              <prop key="/login.do">LoginAction</prop>
           </props>
        </property>
   </bean>
   
   <bean id="LoginAction"
       class="net.oscar.action.LoginAction">
       <property name="commandClass">
          <value>net.oscar.action.LoginInfo</value>
       </property>
       
       <property name="fail_view">
           <value>loginfail</value>
       </property>
       
       <property name="success_view">
          <value>main</value>
       </property>
   </bean>
</beans>

5.在工程的src下新建Config.xml用到的 net.oscar.action.LoginAction和 net.oscar.action.LoginInfo的类

package net.oscar.action;

public class LoginInfo ...{
    private String username;
    private String password;
    public String getUsername() ...{
        return username;
    }
    public void setUsername(String username) ...{
        this.username = username;
    }
    public String getPassword() ...{
        return password;
    }
    public void setPassword(String password) ...{
        this.password = password;
    }
}
package net.oscar.action;

import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;

import org.springframework.validation.BindException;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;

public class LoginAction extends SimpleFormController...{
     private String fail_view;
     private String success_view;
     
    protected ModelAndView onSubmit(Object cmd,BindException ex)throws Exception...{
        LoginInfo loginInfo=(LoginInfo)cmd;
        if(login(loginInfo)==0)...{
            HashMap result_map=new HashMap();
            result_map.put("logininfo", loginInfo);
            
            List msgList=new LinkedList();
            msgList.add("msg1");
            msgList.add("msg2");
            msgList.add("msg3");
            result_map.put("messages", msgList);
            
            return new ModelAndView(this.getSuccess_view(),result_map);
        }else...{
            return new ModelAndView(this.getFail_view());
        }
        
    }
    
    private int login(LoginInfo loginInfo)...{
        if("oscar".equalsIgnoreCase(loginInfo.getUsername())&&"123456".equals(loginInfo.getPassword()))...{
            return 0;
        }
        return 1;
        
    }
    public String getFail_view() ...{
        return fail_view;
    }
    public void setFail_view(String fail_view) ...{
        this.fail_view = fail_view;
    }
    public String getSuccess_view() ...{
        return success_view;
    }
    public void setSuccess_view(String success_view) ...{
        this.success_view = success_view;
    }
}

6.改动index.html文件(在WebContent目录下)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>Insert title here</title>
</head>
<body>
   <form method="post" action="login.do">
        <p align="center">登录</p>
        <br>
        用户名:
        <input type="text" name="username">
        <br>
        密&nbsp;&nbsp;码:
        <input type="password" name="password">
        <br>
        <p>
           <input type="submit" value="提交" name="B1">
            <input type="reset" value="重置" name="B2">
        </p>
   </form>
</body>
</html>

7.在WEB-INF下新建view目录用于存放jsp文件,loginfail.jsp和main.jsp
main.jsp

<%...@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%...@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>   

<html>
<head>


</head>
<body>
   <p>Login Success!!!</p>
   
   <p>Current User:
       <c:out value="${logininfo.username}"/><br>
   </p>
   
   <p>Your Current messages:</p>
   <c:forEach items="${messages}"
              var="item"
              begin="0"
              end="9"
              step="1"
              varStatus="var">
         <c:if test="${var.index%2==0}" >
         *
         </c:if>   
         ${item}<br> 
   </c:forEach>
</body>
</html>

loginfail.jsp

<%...@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Login fail!
</body>
</html>

大功告成!在index.html中输入用户名:oscar 密码:123456就可以登陆了.

Eclipse环境下 spring MVC 入门实例相关推荐

  1. eclipse spring mysql,eclipse环境下的springboot框架+mybatis访问MySQL报错空指针

    "/")public classTestController { @RequestMapping("/login")publicString login() { ...

  2. Spring MVC入门 —— 跟开涛学SpringMVC

    2014-05-14 23:22:27 第二章 Spring MVC入门 -- 跟开涛学SpringMVC  浏览(84979)|评论(12)   交流分类:Java|笔记分类: 跟开涛学Spring ...

  3. Spring MVC 入门--Hello World

    Spring MVC 学习 Hello world 步骤 添加jar包 在web.xml文件中配置DispatcherServlet 添加Spring MVC的配饰文件 编写处理请求的处理器,并且标识 ...

  4. Spring、Mybatis、Spring MVC整合实例

    Spring.Mybatis.Spring MVC整合实例笔记 源码地址:https://gitee.com/name168/SSM_Demo 1.Maven web项目创建(IDEA) 2.SSM整 ...

  5. Spring oxm入门实例

    O/XMapper是什么? Spring3.0的一个新特性是O/XMapper.O/X映射器这个概念并不新鲜,O代表Object,X代表XML.它的目的是在Java对象(几乎总是一个plainoldJ ...

  6. 关于在XP操作系统和IIS5.1环境下的MVC环境搭建之IIS错误

    我们通常在XP操作系统中搭建IIS5.1环境下的webform模式应用程序和MVC模式的应用程序,但是我们知道,一个应用程序的环境搭建是首先要面临的一个问题.环境搭建,特别是第一次的搭建,这个看似并不 ...

  7. 解决eclipse环境下maven项目tomcat启动,未加载到项目的问题

    解决eclipse环境下maven项目tomcat启动,未加载到项目的问题 参考文章: (1)解决eclipse环境下maven项目tomcat启动,未加载到项目的问题 (2)https://www. ...

  8. eclipse环境下如何配置tomcat

    eclipse环境下如何配置tomcat 回到目录 eclipse环境下如何配置tomcat 很多初学,尤其自学JavaWeb的朋友首次在eclipse下配置tomcat时,总会有种难下手的感觉,在此 ...

  9. Spring MVC代码实例系列-06:Spring MVC配置Hibernate-Validator以及自定义校验注解

    超级通道 :Spring MVC代码实例系列-绪论 本章主要记录,如何在Spring MVC中添加Hibernate-Validator以及自定义校验注解.本章主要涉及的技术点有: javax.val ...

最新文章

  1. java 折半插入排序_[Java代码] Java实现直接插入排序和折半插入排序算法示例
  2. python使用numpy中的np.mean函数计算数组的均值、np.var函数计算数据的方差、np.std函数计算数组的标准差
  3. 大学毕业后,我将何去何从?
  4. 编程之美初赛第一场--焦距
  5. 继鼎晖夹层完成80亿募集后,鼎晖夹层IDC基金首轮关账15亿
  6. 自由自在休闲食品以创新助80后女孩成功创业
  7. 在过滤器中设置一个应用范围内的路径
  8. jvav的 全局变量 和 局部变量
  9. 省选考试防爆0注意事项(PART1考试习惯)
  10. HDU 4359 Easy Tree DP? 组合数学+动归
  11. React—Native开发之 Could not connect to development server(Android)解决方法
  12. nohup方式 真正的后台不挂断运行程序
  13. 破B操作系统:(1)显示桌面图标
  14. 【Docker 那些事儿】如何安全地停止、删除容器
  15. 关于马克思《青年在选择职业时的考虑》的读书报告
  16. iOS--相册视频MOV转MP4
  17. GitLab CI/CD如何在docker in docker 模式下将流水线的产物存储到宿主机上?
  18. 量子计算机叠加算法,量子计算中的叠加
  19. 深入浅出Pairwise 算法
  20. UIButton水平居中、垂直居中按钮 image 和 title

热门文章

  1. 搭建subversion 服务器,并自动部署项目
  2. 学会使用JDK API
  3. 关于Cococs中的CCActionEase(下)
  4. Mac上使用中文Beamer添加各种格式的图片
  5. asp.net中涉及子文件夹的母版页和相对路径文件引用问题(一)
  6. Python-异常处理
  7. 如何解决分布式系统数据事务一致性问题(HBase加Solr)
  8. 【干货】2021年技术趋势:全球企业加速数字化转型-德勤.pdf(附下载链接)
  9. 【白皮书分享】2020新式茶饮白皮书:数字化进阶-奈雪.pdf(附下载链接)
  10. 【报告分享】2020年中国金融科技企业领袖观点洞察报告.pdf(附下载链接)