SpringMVC入门学习-02-入门程序HelloWorld及相关知识点

index.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <a href="hello">helloWorld</a>
  </body>
</html>

MyFirstController:

package com.it.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

//@Controller注解标识该类是一个控制器
@Controller
public class MyFirstController {
    // /代表从当前项目下开始,处理当前项目下的hello请求
    @RequestMapping("/hello")
    public String myFirstRequest(){
        System.out.println("Controller中的myFirstController请求映射成功");
            return "success";
    }
}

springmvc.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:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.1.xsd
    http://www.springframework.org/schema/mvc
    http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">

    <!-- 扫描所有组件 -->
    <context:component-scan base-package="com.it.controller"></context:component-scan>

    <!-- 配置一个视图解析器,能帮我们拼接视图地址 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

</beans>

web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
        <!--
        load-on-startup:服务器启动的时候创建对象,
        值越小优先级越高,越先创建对象
         -->
    </servlet>
    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <!--
         /*和/都是拦截所有请求,
         前者范围更大,会把.jsp文件都拦截,一旦拦截后jsp页面就无法正常显示了
         -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

HelloWorld的细节:

1、运行流程:

1)点击超链接后客户端会发送http://localhost:8080/springmvc/hello请求
2)来到tomcat服务器
3)SpringMVC的前端控制器接收到请求
4)比较请求地址和@RequestMapping标注的哪个匹配,从而确定使用什么方法
5)前端控制器找到了目标处理器类和目标方法,直接利用反射执行目标方法
6)方法执行后得到一个返回值,SpringMVC认为这个返回值就是要去的页面地址
7)用视图解析器凭借字符串得到完整的页面地址
8)前端控制器帮我们转发到页面

2、@RequestMapping:

作用:告诉SpringMVC这个方法要来处理什么URL请求
括号中的 / 可以省略,习惯加上
可以标注在类或方法上:
标记在类上时:提供初步的请求映射信息
标记在方法上时:提供进一步的细分映射信息
当类和方法上都有注解时,访问 /类注解/方法注解 才能执行目标方法
@RequestMapping的属性值:
method:接收的请求方式,默认全部接受
-method=RequestMethod.POST:只接受post请求
params:规定请求参数
-params和headers支持简单的表达式:
params1表示请求必须包含名为params1的请求参数
!params1表示请求不能包含名为params1的请求参数
params1 !=value1表示请求包含params1的请求参数,但其值不能为value1
{“params1=value1",“params2”}表示请求必须包含名为params1和params2的两个请求参数,且params1的参数值必须为value1
headers:规定请求头,使用方法与params类似;可以限制访问的浏览器
consumes:只接受内容类型是哪种的请求,规定请求头中的Content-Type
produces:告诉浏览器返回的内容类型是什么,给响应头中加上Content-Type:text/html;charset=utf-8

@RequsetMapping的模糊匹配:
URL地址可以写模糊的通配符:
?:能替代任意一个字符(/不行)

  • :能替代任意多个字符和一层路径(/不行)
    ** :能替代多层路径
    存在多个相同路径的情况下优先匹配较精确路径

@pathVariable 映射URL绑定的占位符:
带占位符的URL是spring3.0新增的功能
通过@PathVariable可以将占位符参数绑定到URL中

@RequestMapping("/hello/{id}")
public String hello(@PathVariable("id") Interger id){ 
    return "success";
}
3、下配置文件的指定:

可以不指定,不指定的情况下springmvc会默认去找/WEB-INF/xxx-servlet.xml文件(xxx为),找不到则会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值