SpringMVC学习历程--SpringMVC第一个例子

DispatcherServlet



如图为SpringMVC工作的流程图

和大多数的webMVC框架一样请求驱动通过派遣控制器和提供其他的方法来对web应用进行开发

SpringMVCDispatcherServlet就充当着FrontController的职责

从名字上看, DispatcherServlet是一个servlet, 而且事实上, 它确实是一个servlet, 因此在web开发中需要在web.xml对它进行配置, 配置代码如下:

<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<!-- 注意这里的url要配置成如下, 不能配置成<url-pattern>/*</url-pattern> -->
<!-- 如果配置多加了”*”那么Spring会将jsp文件当成txt文件直接输出到浏览器上  -->
<url-pattern>/</url-pattern>
</servlet-mapping>

上述DispatcherServlet初始化中, SpringMVC默认会自动寻找一个在web-inf目录下的名为[servletName]-servlet.xml(也就是SpringMVC-servlet.xml)的配置文件,因此我们需要自行创建一个xml文件, 如果你不想按照默认的来加载配置文件,你也可以自己通过servlet初始化参数(init-param)来自行指定配置加载方式

自定义具体参数定义如下:



配置格式如下:

在相应的DispatcherServlet添加如下初始化参数:

这里以改变配置文件的命名空间为例:

<init-param>
<param-name>namespace</param-name>
<param-value>HelloWorld_servlet</param-value>
</init-param>
改变之后, 服务器启动时加载的配置文件不再是默认的了, 而是改变后名为

HelloWorld_servlet.xml文件

 Controller

配置完DispatcherServlet后就可以开始进入下一个环节了, 建立controller,

bean

以下为例:

package com.wenj.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
@Controller
public class HelloWorldController {
    @RequestMapping(value = "/helloWorld")
    public String helloWorld(Model model) {
        model.addAttribute("helloWorld", "Hello World!");
       return "hello";
    }

}


 

这里是采用注解的方式

@Controller表明这是一个Controller

@RequestMapping 进行url的匹配

 

Model表示的是Controller处理返回的模型对象

return回来的是视图jsp的名称‘hello.jsp’

 

也可以改为如下处理代码

@RequestMapping(value = "/helloWorld")

public ModelAndView helloWorld() {
ModelAndView mv = new ModelAndView();
mv.addObject("helloWorld", "Hello World!");
mv.setViewName("hello");
return mv;
}


ModelAndView类别就如其名称所示,是代表了MVC Web程序中Model与View的对象,不过它只是方便您一次返回这两个对象的holder,Model与View两者仍是分离的概念。

配置Spring XML配置文件

PS:这里以我的配置文件SpringMVC-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:mvc="http://www.springframework.org/schema/mvc" 
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
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<!-- 配置自动扫描controller注解  -->
<context:component-scan base-package="com.wenj.controller" />
</beans>

配置完毕

编写视图文件(JSP)和配置视图

JSP:

/**********hello.jsp**********/

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">  
    <title>HelloWorld Page</title>   
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> 
  </head>  
  <body>
    ${helloWorld}
  </body>
</html>

配置视图:

在Spring中的xml配置文件添加如下代码:

<!-- 配置视图 -->
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

全部工作准备完毕!

 完毕:

还差一步, 启动服务器, 打开浏览器, 输入如下URL:

http://localhost:8080/SpringMVC/helloWorld 

确认,你会看到网页输出:

HelloWorld!

 

[ 2021年,将Spring全家桶的课程进行Review,确保不再有顺序错乱等问题导致学员看不懂内容,进入2022年,将Spring的课程进行整理,整理为案例精讲的系列课程,并开始逐步增加高阶的Spring Security等内容,课件将逐步进行上传,敬请期待! ]本课程是Spring全家桶案例精讲课程的第二部分Spring MVC,Spring案例精讲课程以真实场景、项目实战为导向,循序渐进,深入浅出的讲解Java网络编程,助力您在技术工作中更进一步。 本课程聚焦Java Spring的Web知识点,主要是关于Spring MVC的应用,包含:表单的增删改查、国际化、过滤器、拦截器、日志Log4j2及slf4j的使用、主题更改网站皮肤及样式、文件上传等的案例讲解,并且最后以一个SSM(Spring+Spring MVC+Mybatis)贯穿前后台的案例作为Spring MVC课程的终奖, 从而使大家快速掌握Spring的基础核心知识,快速上手,为面试、工作等做好充足准备。 由于本课程聚焦于案例,即直接上手操作,对于Spring的原理等不会做过多介绍,希望了解原理等内容的需要通过其他视频或者书籍去了解,建议按照该案例课程一步步做下来,之后再去进一步回顾原理,这样能够促进大家对原理有更好的理解。 【通过Spring全家桶,我们保证你能收获到以下几点】 1、掌握Spring全家桶主要部分的开发、实现2、可以使用Spring MVC、Spring Boot、Spring Cloud及Spring Data进行大部分的Spring开发3、初步了解使用微服务、了解使用Spring进行微服务的设计实现4、奠定扎实的Spring技术,具备了一定的独立开发的能力  【实力讲师】 毕业于清华大学软件学院软件工程专业,曾在Accenture、IBM等知名外企任管理及架构职位,近15年的JavaEE经验,近8年的Spring经验,一直致力于架构、设计、开发及管理工作,在电商、零售、制造业等有丰富的项目实施经验 【本课程适用人群】如果你是一定不要错过!  适合于有JavaEE基础的,如:JSP、JSTL、Java基础等的学习者没有基础的学习者跟着课程可以学习,但是需要补充相关基础知识后,才能很好的参与到相关的工作中。 【Spring全家桶课程共包含如下几门】 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值