SpringMVC入门学习

来源:互联网 发布:淘宝进口商品 编辑:程序博客网 时间:2024/05/18 00:45

本篇博客知识点:
1.介绍SpringMVC的核心类
2.SpringMVC对前端请求的处理过程
3.实际项目核心部分代码演示

SpringMVC几个核心类:

控制器核心类:相当于前面学的struts.xml

org.springframework.web.servlet.DispatcherServlet  - 配置web.xml

加载配置文件核心类:

org.springframework.web.context.ContextLoaderListener – spring的配置文件

处理url影射核心类:

org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping-根据bean的名称请求一个bean. spring的配置文件 - /abc

处理视图资源核心类:

org.springframework.web.servlet.view.ResourceBundleViewResolverreturn hello – 决定返回的字符串由哪一个页面来显示。

处理注解URL核心类:

org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping - 用于识别@RequestMapping注解。使用了上面的类,Controller还是需要配置的。 <context:component-scan package=“cn.hncu”/>用于替代上面的类。

方法动态调用核心类

org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver

SpringMVC对前端请求的处理过程
这里写图片描述

实际项目核心部分代码演示
1.先准备好所有需要的包~
这里写图片描述

2.核心的web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0"     xmlns="http://java.sun.com/xml/ns/javaee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">  <display-name></display-name>   <!-- 添加Spring的容器和配置文件位置 -->   <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>            classpath:beans.xml        </param-value>   </context-param>    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>  <servlet>    <servlet-name>hncu</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <!-- 自定义配置"配置文件"的位置与名称,若没有配置该初始化参数,               则是默认文件名:servletName+ "-servlet.xml"  -->     <init-param>        <param-name>namespace</param-name>        <param-value>hncu-servlet</param-value>     </init-param>        <load-on-startup>1</load-on-startup>       </servlet>  <servlet-mapping>    <servlet-name>hncu</servlet-name>    <url-pattern>/sp/*</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

hncu-servlet.xml

  <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>      <!-- 重定向向不需要绑定视图 -->      <bean name="/hello" class="cn.hncu.one.HelloWorldController" ></bean>      <!-- 转发则需要"绑定视图解析的狠心类 " -->      <bean name="/hello2" class="cn.hncu.two.HelloWorldController2"></bean>      <bean class="org.springframework.web.servlet.view.ResourceBundleViewResolver">            <property name="basenames">              <list>                 <!-- 默认查询classpath: hncu.properties  -->                 <value>hncu</value>              </list>            </property>            <!-- 配置默认父View,当某一个结果资源在hncu.properties中没有指定View时,就用默认父View作为它的View -->            <property name="defaultParentView" value="hncu"></property>      </bean>

beans.xml

 <!-- 把Spring容器和SpringMVC容器加到一起,多方法挂了所以加了这个 -->        <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>        <!-- 在SpringMVC中启用Spring框架的核心类(ContextLoaderListerner) -->        <bean name="/multi" class="cn.hncu.three.MultiController">        <!--  内部胚子一个帮助方法名字解析的核心类 -->            <property name="methodNameResolver">                <!-- 方法名字解析的核心类  -->                <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">                        <!--  未给方法名字就设定默认方法名字 -->                        <property name="defaultMethodName" value="execute"></property>                        <!--  参数名:与前端method相对应 -->                        <property name="paramName" value="method"></property>                </bean>            </property>        </bean>                <!-- 基于注解的访问方式~~~ -->        <!-- 把用注解方式访问的bean放进来 ,另种方式-->        <!--方式一:自动扫描 下面这个类师核心扫描bean 帮你加到容器中 -->        <context:component-scan base-package="cn.hncu.annno"/>        <!-- 方式二:手动添加 -->        <!--          <bean class="cn.hncu.annno.AnnoOneController"></bean>        <bean class="cn.hncu.annno.AnnoTwoController"></bean>        -->        <!--  用于识别注解bean 的核心类 -->        <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean></beans>

带注解方法写的实例

//下面这一行是表示 请求访问要加的前缀@RequestMapping(value="/an")@Controllerpublic class AnnoTwoController {    @RequestMapping(value="/anno_two")    public String aa(){        System.out.println("注解anno_two");        return "anno_two";    }}

对应的前端请求

 <a href="sp/an/anno_two">anno_one</a>
原创粉丝点击