HelloSpringMVC

HelloSpringMVC

Spring MVC 用DispatcherServlet处理请求_w3cschool :官方中文文档

初学SpringMVC,这个是一个新的概念,因此使用老方法,通过一个模型来理解和学习。

我们这里使用的SpringMVC使用的是Dispatcherservlet,这个东西的底层还是Servlet

搭建环境

  • 搭建一个Module
  • 导入web
  • 确定导入了springmvc的依赖
  • 注册DispatcherServlet,配置xml
  • 设置关联配置文件
  • 注册control到Spring的xml中

整个程序额结构

搭建一个Module

由于我不会使用普通的Module项目添加web依赖来实现创建webapp,因此我是用传统的直接通过maven搭建web环境。

修改web.xml配置:

1
2
3
4
5
6
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

</web-app>

spring.xml配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
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/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">


</beans>


这个xml的配置非常全,可能有点用不到,但是十分方便

导入SpringMVC的依赖

1
2
3
4
5
6
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.16</version>
</dependency>

配置web.xml 注册DispatcherServlet

一下的写法都是固定的,不需要有任何改变

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">

<!--初测DispatcherServlet 这是我们提供的固定的接口-->
<servlet>
<servlet-name>Spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

我们这里可以看到有一个<init-param></init-param>配置,因此我们需要去创建一个跟web.xml相配的Spring的xml1文件

创建Spring的xml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
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/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

<!--添加映射器-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

<!--添加处理器适配器-->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>

<!--添加视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>

</beans>


这部分的程序也是固定的,不需要改变的

编写Control类

我们这里已经使用了SpringMVC的固定接口DispatcherServlet,因此我们这里使用Spring给的另一个接口Controller来实现我们的servlet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.dwx.control;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class mycomtrol implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg","hello SpringMVC");

modelAndView.setViewName("hello");
return modelAndView;
}
}

程序解析:

创建ModelAndView,通过这个产生的对象来执行我们需要执行的程序

modelView:

  • addObject(“msg”,”value”):这个方法相当与原来的setAttribute()。设置参数个前端用
  • setViewName(“name”),相当于重定向

我们可以看到,在spring.xml配置中有:

1
2
3
4
5
6
7
<!--添加视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!--后缀-->
<property name="suffix" value=".jsp"/>
</bean>

这里的前缀可以添加到这里的name的前后来表示位置

注册到Spring.xml中

1
2
3
<!--注册control-->

<bean id="/hello" class="com.dwx.control.mycomtrol"/>

之后我们就可以通过这个/hello,来执行程序

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信