来源:https://www.bilibili.com/video/BV1GE411d7KE
下一节:https://blog.csdn.net/qq_40893824/article/details/107055793
MVC 设计模式,应用程序分为
Controller:接收客户端请求
Model:生成业务数据传递给 View
开发者进行处理的只有 Handler 、View
这个需要配置 maven,可参见:
https://blog.csdn.net/qq_40893824/article/details/106422562
新建工程
1
archetypeCatalog
internal
这一步是为了防止警告:
No archetype found in remote catalog. Defaulting to internal catalog
2
视图 放在 webapp 中
结构中 没有 java、resources
3 main 中,创包 java、resources
4 pom.xml 文件中,删除 和 加入代码:
删除红框处代码
加入代码:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.7.RELEASE</version>
</dependency>
配置 DispatcherServlet
1 java 中,创包 com.southwind.controller
2 resources 中,新建 springmvc.xml,加入代码:
<!-- 自动扫描 -->
<context:component-scan base-package="com.southwind"></context:component-scan>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
3 webapp/ WEB-INF/ web.xml 中,加入代码:
<servlet>
<servlet-name>dispatcherServlet</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>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern><!-- 拦截所有请求 -->
</servlet-mapping>
4 controller 中,新建 控制类 HelloHandler,加入代码:
package com.southwind.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping("/hello")
public class HelloHandler {
@RequestMapping("/index")
public String index(){
System.out.println("执行了index...");
return "index";
}
}
5 运行
删去 红框标记的蓝色阴影 后:
After launch 不勾
可以启动了:
中文乱码,解决:
思路来源:https://blog.csdn.net/u012744265/article/details/84984052
红框处是 GBK
重启
ok
进入 http://localhost:8080/hello/index
运行流程
输入网址 http://localhost:8080/hello/index
被 web.xml/ DispatcherServlet 捕获,DispatcherServlet 在 springmvc.xml 指定的包中 扫描,看是否有 index 映射
发现 HelloHandler 有 @RequestMapping("/index")
,就实例化该对象,执行之:
在控制台 输出 “执行了index…”
return 的 “index”,因为 springmvc.xml 中说明了 网页路径 和 后缀 .jsp
webapp 中 有 index.jsp,就运行这个页面,返回视图(HelloHandler 中 有 @Controller
)
下一节:https://blog.csdn.net/qq_40893824/article/details/107055793