SpringMVC(一)

主要进行了如下配置:

1、 前端控制器DispatcherServlet;

2、 HandlerMapping

3、 HandlerAdapter

4、 ViewResolver

5、 处理器/页面控制器

6、 视图

 

Spring Web MVC处理请求的流程

具体执行步骤如下:

1、  首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;

2、  页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;

3、  前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;

4、  前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。

 

例子

 

1、配置web.xml

<?xml version="1.0"encoding="UTF-8"?>  
<web-appxmlns:xsiweb-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee"xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5">  
         <servlet>  
                   <servlet-name>hello</servlet-name>  
                   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
                   <load-on-startup>1</load-on-startup>  
         </servlet>  
         <servlet-mapping>  
                   <servlet-name>hello</servlet-name>  
                   <url-pattern>/</url-pattern>  
         </servlet-mapping>  
<!-- 下面这个配置,解决post中文乱码问题 --> <filter> <filter-name>CharacterFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

load-on-startup:表示启动容器时初始化该Servlet;

url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。也可以如“*.html”表示拦截所有以html为扩展名的请求。

 

2、配置Hello-servlet.xml管理Spring的配置

(名称必须与web.xm文件中的servlet-name相同,放到web-inf下) 

prefix前缀:处理后转到/WEB-INF/jsp/目录下的jsp页面

surfix后缀:视图页面是以.jsp结尾的jsp文件

<?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-3.0.xsd  
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
    
    <bean name="welcome.html" class="zttic.itat.controller.WelcomeController"></bean>  
<bean class="org.springframework.web.servlet.view.InternalResuorceViewResolver" <property name="prefix" value="/WEB-INF/jsp/"/> <property name= "surfix", value=".jsp"/> </bean> </beans>

 <bean name="welcome.html" class="zttic.itat.controller.WelcomeController"></bean> 

当用户在客户端请求访问welcome.html时,对应的Controller处理器处理这个请求,并转到相应页面

3、新建一个Controller类:WelcomeController.java

package zttc.itat.controller;  
import javax.servlet.http.HttpServletRequest;  
public class WelcomeController extends AbstractController{  
    @Override  
    protected ModelAndView handleRequestInternal(httpServletRequest request,  
                   httpServletResponse response) throws Exception{  
            System.out.println("welcome");  
            return new ModelAndView("welcome");  
    }  
} 
return new ModelAndView("welcome"):就是转到/WEB-INF/jsp/目录下welcome.jsp页面

4、在WEB-INF目录下新建一个jsp文件夹,在jsp文件夹下新建一个welcome.jsp文件

<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<title></title>  
</head>  
<body>  
<h1>welcome!!</h1>  
</body> 

 

 

二、使用注解annotation开发(推荐这种方式)

1、web.xml

   同上

2、hello-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-3.0.xsd  
        http://www.springframework.org/schema/context   
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">  
//这两句是打开annotation <context:component-scan base-package="zttc.itat.controller"> <mvc:annotation-driven/> //<bean name="welcome.html" class="zttic.itat.controller.WelcomeController"></bean> <bean class="org.springframework.web.servlet.view.InternalResuorceViewResolver" <property name="prefix" value="/WEB-INF/jsp/"/> <property name= "surfix", value=".jsp"/> </bean> </beans>

 

3、创建控制器,新建HelloController.java

在这里完成controller和viewer的映射

package zttc.itat.controller;  
import org.springframework.stereotype.Controller;  
import org.springframework.web.bind.annotation.RequestMapping;  
  
@Controller  
public class HelloController{  
    //RequestMapping表示用哪个URL来对应  
    @RequestMapping{{"/hello","/"}}  
    public String hello(){  
           System.out.println("hello");  
           return "hello";  
     }    
@RequestMapping{{
"/welcome"}} public String welcome(){ System.out.println("welcome"); return "welcome"; } }

@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

4、jsp目录下创建hello.jsp

 

 

 

 

 

原文地址:https://www.cnblogs.com/Donnnnnn/p/5745775.html