springmvc登陆示例(非注解)

说好的一周一篇呢,说好的要努力呢!又失言了,以后再也不说大话了!

今天通过示例对springmvc流程就行了解,在这里做个记录。

springmvc的实现流程,总共4步,下面就分布进行记录:

环境:

 JDK1.8

 Tomcat:8.0

 win7 

第一步:首先创建一个Javaweb工程然后把springmvc所需的jar添加到工程目录“WEB-INF/lib”下。

  jar包可以从网上下载,我这里是4.2版本的。

  创建工程图如下:

  

  index.jsp页面代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>com.zgy</title>
</head>
<body>
    <form action="login.do" >
        <h1>欢迎来到登录界面</h1>
        帐号:<input type="text" name="userName"><br><br>
        密码:<input type="password" name="passWord"><br><br>
        <input type="submit" name="button" value="登录">
    </form>

</body>
</html>

第二步:配置web.xml

  配置前段控制器配置效果如下:

  

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>springMVC1</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置前段控制器 --> <servlet>
     <servlet-name>springmvc</servlet-name> //名字自己定义 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <!-- 定义映射文件 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> //名字要和上面的名字相同 <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>

 

第三步:配置springmvc核心配置:springmvc-servlet.xml

  文件名是根据前面web.xml定义的servlet名字后面加“-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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd  
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd  
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd  
            http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd">  

    <!-- 配置控制器 -->
    <bean id="login" name="/login.do" class="com.zgy.control.logincontrol" ></bean>   //class是控制器类所在的路径
    
    <!-- 配置试图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp/"></property>       //返回显示视图文件的前缀,我这里是在jsp文件夹下的
        <property name="suffix" value=".jsp"></property>        //后缀
    </bean>
            
</beans>

第四步:编写控制器类,控制器类必须继承AbstractController接口然后重写handleRequestInternal方法。

  然后再通过ModelAndView mavmav = new ModelAndView("success");返回页面  “success”是返回页面的名字

  代码如下:

package com.zgy.control;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class logincontrol extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        ModelAndView mav;
        if("admin".equals(request.getParameter("userName"))) {
            if("123".equals(request.getParameter("passWord"))){
                    mav = new ModelAndView("success");            
            }else {
                mav = new ModelAndView("erro");
            }    
            
        }else {
            mav = new ModelAndView("erro");
        }
        return mav;
    }
    
    
}

通过配置映射来查找控制器有三种方法,上面是采用的默认方法,下面对三种方法进行说明:

 1 <!-- 配置controller -->
 2     <bean id="login" name="/login.do" class="com.zgy.control.logincontrol" ></bean>    
 3       
 4       <!-- 配置映射处理器 :第一种方法通过name来映射寻找controller (默认) -->          
 5       <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>      
 6   
 7       <!--配置映射处理器:第二种方法通过简单URL来查找controller -->
 8       <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
 9           <property name="mappings">
10               <props>
11                   <prop key="login1.do">login</prop>   
12               </props>          
13           </property>      
14       </bean>
15            
16       <!-- 配置映射处理器:第三种方法控制类的类名控制器,访问时类名首字母需要小写  -->
17     <bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
18        
19       

三种方法说明:

  第一种方法:默认的是通过name来查找,action的值和控制器的name的值相同,这里都是“login.do”

  第二种方法:是采用url进行查找,key值要和action值相同  value值和bean的id相同

  第三种方法:通过类名来进行查找,访问时将action的url 替换成 “类名.do”。

原文地址:https://www.cnblogs.com/zhaoguoying/p/11382053.html