内置tomcat整合springMVC
2021-03-06 20:27
标签:start ack list str 控制 art json 上下文 source spring MVC是一个基于MVC模式的表现层框架,在spring2.5以后增加了注解功能。使得开发变得更加高效、快捷。由于spring MVC是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合,可以达到无缝整合。 springMVC的特点有: 1、基于的是servlet/jsp模式 2、控制器不再需要继承其它类,只需要用@Controller注解 3、应用控制器方法参数,由前端控制器负责封装,方法签名定义灵活。 4、返回页面直接在方法中指定,可以是String,也可以是其它的,比如:ModelAndView或void等 5、性能优秀 下面来看一下,内置tomcat中,如何整合springMVC。 首先,创建maven项目,导入springMVC相关的依赖。 由于springMVC是spring的一个模块,所以spring的依赖也需要导入: 当然,内置tomcat也需要导入 另外,为了方便处理json,还需要导入jackson 第二步,需要编写配置类,完成spring和springMVC相关的配置 从这里可以看出,响应信息编码集为utf-8,解决了响应信息乱码问题。客户端所访问的静态文件,比如:html、css、js、图片等放在类路径下。由于创建的是maven项目,所以,可以在resources目录下创建static/html,用于放置静态资源。 第三步,编写启动类,在启动类中注册springMVC的前端控制器。 好了,springMVC已经注册进内置tomcat。 第四步:书写应用控制器处理客户端请求,产生响应: 注意,应用控制器所在的包,必须是配置类扫描包,或子包。比如,在上面配置类中的扫描定义为 那么,应用控制器必须是配置类WebApplicationConfig所在包,及子包中的类。 在resources目录下,创建static/html。然后,在该目录下,新建info.html,书写文本:“info.html” 第五步,测试 运行启动类,打开浏览器,输入:http://localhost:8088/test?name=tom。就可以看到info.html中的内容。并且,在服务器控制台上,有"执行应用控制器方法,参数name为tom"文字输出。 内置tomcat整合springMVC 标签:start ack list str 控制 art json 上下文 source 原文地址:https://www.cnblogs.com/lovozcf/p/14289531.html@Configuration //申明该类为配置类
@ComponentScan(basePackageClasses = WebApplicationConfig.class)//扫描指定类所在包及子包中的spring组件
@EnableWebMvc //提供mvc支持
public class WebApplicationConfig implements WebMvcConfigurer {
//设置响应信息编码集
@Override
public void extendMessageConverters(
List
package com.project;
public class MainServer {
public MainServer(){
Tomcat tomcat = new Tomcat();//创建tomcat对象
tomcat.setPort(8088); //设置端口
tomcat.getConnector();
//创建web容器上下文
Context context = tomcat.addContext("", null);
try {
//注册前端控制器
DispatcherServlet dispatcherServlet = new DispatcherServlet(
this.createApplicationContext(context.getServletContext()));
Wrapper servlet = tomcat.addServlet(context, "dispatcherServlet", dispatcherServlet);
servlet.setLoadOnStartup(1);
servlet.addMapping("/*");
tomcat.start();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建spring容器的应用上下文对象
* @param servletContext WEB容器上下文对象
* @return spring容器应用上下文对象
*/
public WebApplicationContext createApplicationContext(
ServletContext servletContext) {
AnnotationConfigWebApplicationContext ctx
= new AnnotationConfigWebApplicationContext();
ctx.register(WebApplicationConfig.class); //加载配置类
ctx.setServletContext(servletContext);
ctx.refresh();
ctx.registerShutdownHook();
return ctx;
}
public static void main(String[] args) {
new MainServer();
}
}
package com.project.conrtroller;
@Controller
public class TestController {
@RequestMapping("/test")
public String testRequest(String name){
System.out.println("执行应用控制器方法,参数name为"+name);
//重定向到指定页面
return "redirect:/html/info.html";
}
}
@ComponentScan(basePackageClasses = WebApplicationConfig.class)//扫描指定类所在包及子包中的spring组件
public class WebApplicationConfig implements WebMvcConfigurer {
……
}
文章标题:内置tomcat整合springMVC
文章链接:http://soscw.com/index.php/essay/61009.html