SpringMVC day01

1. SpringMVC框架的作用

MVC = Model(数据模型) + View(视图) + Controller(控制器)

SpringMVC框架主要解决了V与C的交互问题,与M无关!

在传统的JavaEE技术中,使用Servlet作为Controller控制器,用于接收客户端提交的请求,并能够给予响应结果!由于绝大部分Servlet都只处理1种请求,例如使用UserLoginServlet处理用户的登录请求,使用UserReigsterServlet处理用户的注册请求,如果某个项目中,请求的种类太多,就会导致需要开发大量的Servlet,有500种请求,就需要开发500个Servlet,关于Servlet的配置代码也会较长,不易于管理,在实际运行时,服务器的内存中就会有500个Servlet的对象,占用的内存较多!

使用SpringMVC框架就可以很好的解决以上问题!

2. 使用SpringMVC框架开发WEB项目

2.1. 案例目标

打开浏览器,输入http://localhost:8080/项目名称/hello.do,可以看到自定义的页面!

2.2. 创建项目

创建Maven Project,创建时,勾选Create a simple projectGroup Idcn.tedu.springArtifact IdSpringMVC01Packaging选择war

创建好的项目报错,需要生成web.xml文件。

由于这将是一个WEB项目,所以,对项目点右键,在属性中勾选Tomcat。

SpringMVC框架是基于Spring框架的,所以,在前序项目中复制spring.xml文件到当前项目中。

从前序项目中复制依赖的代码到当前项目的pom.xml中!本次使用SpringMVC框架时,必须添加spring-webmvc的依赖,推荐使用4.2或以上版本的spring-webmvc框架!

spring-webmvc是包含spring-context的!

2.3. 使得DispatcherServlet接收所有.do请求

DispatcherServlet是SpringMVC框架中的Servlet,其本质就是一个Servlet,所以,必须在web.xml中添加配置:

<servlet>
	<servlet-name>SpringMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

当启动项目时,还应该加载spring.xml,以得到整个Spring容器!

DispatcherServlet的父类FrameworkServlet中,定义了名为contextConfigLocation的属性,属性值应该是配置文件的名称,一定指定了配置文件,当初始化DispatcherServlet时,就会自动读取配置文件的内容!则配置为:

<servlet>
	<servlet-name>SpringMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring.xml</param-value>
	</init-param>
</servlet>

<servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

最后,再将该DispatcherSerlvet设置为启动时初始化即可:

<servlet>
	<servlet-name>SpringMVC</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	<init-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:spring.xml</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
	<servlet-name>SpringMVC</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>
2.4. 使用自定义控制器接收请求

cn.tedu.spring包(组件扫描指定的包)中创建HelloController控制器类,并在类的声明之前添加@Controller注解(此处只能使用这个注解):

package cn.tedu.spring;

import org.springframework.stereotype.Controller;

@Controller
public class HelloController {

}

在类中添加处理请求的方法,在方法之前通过@RequestMapping注解配置请求路径与处理请求的方法的对应关系,例如:

@RequestMapping("hello.do")
public void a() {
	
}

关于处理请求的方法的设计原则:

  1. 应该使用public权限;

  2. 暂时使用String作为返回值类型;

  3. 方法名称可以自定义;

  4. 参数列表暂时为空。

所以,关于处理请求的方法可以设置为:

@RequestMapping("hello.do")
public String showHello() {
	System.out.println("UserController.showHello()");
	return null;
}

完成后,打开浏览器,输入http://localhost:8080/SpringMVC01/hello.do进行测试,在浏览器中将无法正常显示页面内容,但是在Eclipse的控制台可以看到以上方法输出的内容,并且,刷新页面或重复提交请求,在控制台可以看到多条输出语句!

2.5. 显示页面

待续!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值