我的第一个 springMVC 项目

本文详细介绍SpringMVC框架的基本概念及其项目搭建过程。从核心组件解析到具体配置步骤,帮助读者快速掌握SpringMVC的工作原理及实战技巧。

我的第一个SpringMVC项目

MVC简介:

  • springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
  • springmvc是一个基于mvc的web框架。


SpringMVC 执行流程
在这里插入图片描述

  1. 用户发送请求至前端控制器DispatcherServlet。
  2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。
  3. 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
  4. DispatcherServlet调用HandlerAdapter处理器适配器。
  5. HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
  6. Controller执行完成返回ModelAndView。
  7. HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
  8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
  9. ViewReslover解析后返回具体View。
  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
  11. DispatcherServlet响应用户。


MVC核心jar包

  1. commons-logging-1.1.1.jar jstl-1.2.jar
  2. spring-aop-3.2.0.RELEASE.jar
  3. spring-aspects-3.2.0.RELEASE.jar
  4. spring-beans-3.2.0.RELEASE.jar
  5. spring-context-3.2.0.RELEASE.jar
  6. spring-context-support-3.2.0.RELEASE.jar
  7. spring-core-3.2.0.RELEASE.jar
  8. spring-expression-3.2.0.RELEASE.jar
  9. spring-jdbc-3.2.0.RELEASE.jar
  10. spring-orm-3.2.0.RELEASE.jar
  11. spring-test-3.2.0.RELEASE.jar
  12. spring-tx-3.2.0.RELEASE.jar
  13. spring-web-3.2.0.RELEASE.jar
  14. spring-webmvc-3.2.0.RELEASE.jar

下面开始编写代码



web.xml文件


<!-- spring mvc的前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<!-- spring handler处理器  -->
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param><!-- 1 -->
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  	<!-- 启动级别 -->
	<load-on-startup>1</load-on-startup><!-- 2 -->
  </servlet>
  
  
  <servlet-mapping>
		<servlet-name>springmvc</servlet-name><!-- 3 -->
		<url-pattern>*.do</url-pattern><!-- 4 -->
 </servlet-mapping>

  1. 配置 springMVC的配置文件路径(默认的路径在WEB-INF里 文件名是servlet-name的值加上“-servlet.xml” 可以不写init-param)
  2. 这里面的值为0或者大于0时,表示容器在应用启动时就加载这个servlet 。当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。正数的值越小,启动该servlet的优先级越高。
  3. 这里面的名字需要和上面servlet的servlet-name的值一样
  4. 拦截的要求 *.do 表示只有.do结尾的URL才会被拦截。具体点击查看url-pattern的使用


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: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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
       ">

	
    <context:component-scan base-package="com.kz.controller"></context:component-scan><!-- 1 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><!-- 2 -->
		<property name="prefix" value=""></property>
		<property name="suffix" value=".jsp"></property>
	</bean>


</beans>
  1. 开启springMVC controller的注解扫描(在这个目录下的所有配置了注解文件都会被扫描)
  2. 配置springMVC的视图解析器 里面俩个参数是 可以在springMVC返回的时候在路径上加上的前缀与后缀


controller

package com.kz.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller  <!-- 1 -->
public class SpringMVCController {
	
	@RequestMapping("/test.do")   <!-- 2 -->
	public String test() {
		System.out.println("this  is  spring Controller");
		return "success";    <!-- 3 -->
	}
}

  1. 这个注解是告诉 springMVC 这个文件是 controller
  2. RequestMapping("/test.do")处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。(讲简单了就是配置的路径)
  3. 返回的地址,因为我之前在 springMVC.xml 的文件中配置了后缀suffix为“.jsp” 所以这里只需写文件名不需加上后缀(.jsp) 当你访问这地址时会转发(默认转发)到success.jsp页面

jsp页面

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	this is success page 
</body>
</html>

好啦然后服务器启动起来就行啦 访问地址为 http://127.0.0.1:8080/项目名/test.do

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值