【Spring in action】SpringMVC基于xml及java配置的简单运用
2017-09-22 16:28
796 查看
一、SpringMVC使用步骤
1、DispatchServlet分发器2、查询处理器映射handler mapping
3、DispatchServlet分发器将请求发送给选中的Controller控制器
4、Controller将模型数据和视图名发送会DispatchServlet分发器
5、视图解析器viewResolver匹配特定的试图实现,例如JSP
二、原有的老套路,配置web.xml的方式:
1、web.xml配置DispatchServlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>SpringMVC</display-name> <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> </web-app>
2、springmvc-servlet.xml配置handler mapping ,视图解析器viewResolver,Controller控制器
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd 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-4.3.xsd"> <!-- 配置handlerMapping --> <bean class="org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping"></bean> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 前缀 :说明如果直接放在web-inf下,不需要加前缀--> <property name="prefix" value="WEB-INF/view/"></property> <!-- 后缀 : --> <property name="suffix" value=".jsp"></property> </bean> <!-- 配置controller --> <bean name="/hello.do" class="Controller.HelloController"></bean> </beans>
3、HelloController
package Controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class HelloController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception { // TODO Auto-generated method stub String hello = request.getParameter("hello"); System.out.println("-----"+hello); //返回到index页面 ModelAndView mav = new ModelAndView("index"); mav.addObject("helloworld", "hello"+hello); return mav; } }
4、在指定位置WEB-INF/view/新建index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>${helloworld}</h1> </body> </html>
5、写一个hello.jsp给Controller提供入参:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="hello.do" method="post"> hello:<input type="text" name="hello"> <input type="submit" value="提交"> </form> </body> </html>
6.测试一下/SpringMVC/hello.jsp链接: 输入faith得到结果:hellofaith
三、通过Java配置SpringMVC:
1.配置DispatcherServlet,代替web.xml
package spittr.config; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; //配置DispatcherServlet public class SpittrWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{ @Override protected Class<?>[] getRootConfigClasses() { // TODO Auto-generated method stub return new Class<?>[]{RootConfig.class}; } @Override protected Class<?>[] getServletConfigClasses() { // TODO Auto-generated method stub return new Class<?>[]{WebConfig.class}; } @Override protected String[] getServletMappings() { // TODO 将dispatcherServlet映射到"/" return new String[]{"/"}; } }
2、配置一个RootConfig(该类的功能暂时可忽略)
package spittr.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @ComponentScan(basePackages={"spittr"},excludeFilters={@Filter(type=FilterType.ANNOTATION,value=EnableWebMvc.class)}) public class RootConfig { }
3、配置WebConfig:用来代替springmvc-servlet.xml
package spittr.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Configuration @EnableWebMvc @ComponentScan("spittr.web") public class WebConfig extends WebMvcConfigurerAdapter{ @Bean public ViewResolver viewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setPrefix("/WEB-INF/views/"); resolver.setSuffix(".jsp"); resolver.setExposeContextBeansAsAttributes(true); return resolver; } @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { // TODO Auto-generated method stub configurer.enable(); } }
4、写一个Controller(HomeController)放在spittr.web目录下,并通过注解@Controller:
package spittr.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @Controller public class HomeController { @RequestMapping(value="/",method=RequestMethod.GET) public String home() { return "home"; } }
5、上面return home,会去视图解析器配置的路径resolver.setPrefix("/WEB-INF/views/")下找。写一个符合条件的home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> Welcome,hello World </body> </html>
6、目录结构及导包一览:
相关文章推荐
- 【Spring in action】基于Java配置SpringMVC中使用Spring及SpringMVC各种请求详解
- 【Spring in action】基于xml配置:在SpringMVC中使用Spring容器
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在XML配置文件中引入JAVA配置文件 <import> 、<bean>
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-002- 在xml中引用Java配置文件,声明DispatcherServlet、ContextLoaderListener
- Spring in Action(五):基于Java Config的SpringMVC
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在Java配置文件中引入xml配置文件@Import、@ImportResource
- 【spring in action 学习--springMVC搭建】在不使用web.xml的情况下,配置Srping MVC工程
- Spring In Action(二):基于XML配置装配bean
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-009-带参数的ADVICE2 配置文件为XML
- Spring in Action : MVC 配置(JAVA方式)
- Spring in Action : MVC 配置(JAVA方式)
- Spring 基于XML配置 基于注解配置 基于JAVA类配置比较以及适用场景
- Spring web基于javaconfig类配置 的web.XML配置
- Spring aop 简单示例——基于XML配置和基于注解配置
- (笔记)Spring实战_最小化Spring XML配置(4)_使用Spring基于Java的配置
- 【Java.Spring.Core】【IoC】基于注解的Bean装配(非XML配置)
- Spring in Action : MVC 配置(JAVA方式)
- Spring入门(8)-基于Java配置而不是XML
- Springmvc案例1----基于spring2.5的采用xml配置
- 【Spring】【笔记】《Spring In Action》第3章 简化XML配置