springMVC学习笔记之Controller控制器
Posted 谦谦均
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springMVC学习笔记之Controller控制器相关的知识,希望对你有一定的参考价值。
这里默认你使用的编辑器是idea,并且电脑上安装了Java以及tomcat,并且在idea里面初步配置了tomcat,电脑里面下载了spring。
首先简单介绍一下controller控制器:
- 控制器复杂提供访问应用程序的行为,通常通过接口定义或注解定义两种方法实现。
- 控制器负责解析用户的请求并将其转换为一个模型。
- 在Spring MVC中一个控制器类可以包含多个方法
- 在Spring MVC中,对于Controller的配置方式有很多种
那么怎样实现Controller接口呢,Controller是一个接口,在org.springframework.web.servlet.mvc
包下,接口中只有一个方法;
//实现该接口的类获得控制器功能
public interface Controller {
//处理请求且返回一个模型与视图对象
ModelAndView handleRequest(HttpServletRequest var1, HttpServletResponsevar2) throws Exception;
}
接下来用代码来展示一下具体效果
首先在idea
里面新建一个module
,随便选择一个文件夹,我这里在springMVC
文件夹下面新建的。
然后选择Maven
项目,然后Next
。项目名字叫做wb_springmvc_controller
,项目名字自己随便起。然后点击Finish
。
完成之后可以在idea左上角目录区看到新建的项目文件夹,文件夹左下角有个蓝色方块。
接下来给项目添加一些web
支持。鼠标选中项目文件夹,然后右键
进去后选择Web Application
。默认是最新版本的web
,不需要更改,直接点OK
然后打开项目文件夹,可以看到有个web
的文件夹,文件夹中间有个蓝色的点。
接下来首先在src/main/java
目录下面新建一个包,我这里新建一个名叫wb/controller
的包
打开web.xml
文件。配置一下
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置DispatchServlet-->
<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:springmvc-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
因为我们还没有springmvc-servlet.xml
这个文件,这里配置好了会报红色错误,接下来在java
目录下的resources
文件夹下面新建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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 添加视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 配置前缀-->
<property name="prefix" value="/WEB-INF/jsp/"/>
<!-- 配置后缀-->
<property name="suffix" value=".jsp"/>
</bean>
<bean name="/t2" class="wb.controller.ControllerTest1"/>
</beans>
这里有个要注意的地方,最后一个bean
标签里面class
是你自己的包目录。因为还没在该包下面创建ControllerTest1
,接下来就创建一下
package wb.controller;
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 ControllerTest1 implements Controller {
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
ModelAndView mv = new ModelAndView();
mv.addObject("msg","ControllerTest1");
mv.setViewName("test");//跳转到哪里
return mv;
}
}
这时候项目目录结构如下图所示:
在ControllerTest1.java
这个文件里面,定义了一个变量叫做msg
,他的值是ControllerTest1
,并且定义了跳转的页面是test
,接下来新建一下test.jsp
文件。在web
目录下面的WEB-INF
目录下面新建一个jsp
目录,然后在这个目录下面新建一个test.jsp
文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>test</title>
</head>
<body>
${msg}
</body>
</html>
这里的msg
就是刚才定义的变量名称。title
标签里面随便填什么,默认的也可以。
完成上述操作后,需要去spring
配置文件中注册请求的bean
;其中name
对应的请求路径,class
对应处理请求的类。
接下来打开spring-servlet.xml
文件,在里面加入如下代码
<bean name="/t2" class="wb.controller.ControllerTest1"/>
如图所示:
接下来可以配置一下首页【可以不配置,默认即可】
点开index.jsp
文件
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>首页</title>
</head>
<body>
这是首页!
</body>
</html>
代码这一块就写完了,接下来需要检查一下项目的配置,idea
的配置在导入新的包的时候会自动恢复初始状态。
配置过程参考下面的连接
springMVC项目配置以及tomcat配置【idea】
配置好了之后,点击idea右上角绿色的箭头
稍等一会儿,控制台没有报错的话会自动打开默认浏览器
接下来在后面加上/t2
,如下图所示
配置Tomcat
运行测试,因为之前配置的时候项目发布名设置为 /
,所以请求不用加项目名,OK
!
说明一下:
实现接口Controller
定义控制器是较老的办法
缺点:一个控制器中只有一个方法,如果要多个方法则需要定义多个Controller
;定义的方式比较麻烦;
以上是关于springMVC学习笔记之Controller控制器的主要内容,如果未能解决你的问题,请参考以下文章
JavaWeb学习笔记之图解Struts和SpringMVC区别
SpringMVC框架学习笔记——controller配置汇总