【2】springmvc 入门

本文介绍了SpringMVC的基本配置过程,包括使用BeanNameUrlHandlerMapping和SimpleControllerHandlerAdapter的传统方式,以及采用@Controller和@RequestMapping注解的现代配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

springmvc都是通过其中央控制器DispatcherServlet来进行转发的,所以在web.xml文件里面需要增加相应的配置

<servlet>
        <servlet-name>springServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>springServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

如果没有配置contextConfigLocation,Spring mvc默认配置文件为“/WEB-INF/[servlet名字]-servlet.xml“即“/WEB-INF/springServlet-servlet.xml“

一、简单的controller配置

springServlet-servlet.xml配置文件如下

 

<<span></span>!-- HandlerMapping -->
    <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
      
    <!-- HandlerAdapter -->
    <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
     
    <!-- ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    <bean name="/hello" class="dk.web.controller.HelloWorldController"></bean></beans>

 

HelloWorldController

public class HelloWorldController implements Controller {
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception {
           //1、收集参数、验证参数
           //2、绑定参数到命令对象
           //3、将命令对象传入业务对象进行业务处理
           //4、选择下一个页面
           ModelAndView mv = new ModelAndView();
           //添加模型数据 可以是任意的POJO对象
           mv.addObject("message", "Hello World,spring mvc");
           //设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面
           mv.setViewName("hello");
           return mv;
        } 
}

/WEB-INF/view/hello.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>Hello World</title>
    </head>
    <body>
        ${message}
    </body>
</html>

 

在web容器里面部署及运行你的工程,在浏览器里面访问 ip:port/hello 即可在页面看到 Hello World,spring mvc

二、基于注解anotation的controller配置

Spring2.5 引入注解式处理器支持,通过@Controller 和@RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping 注解的处理器。
@Controller:用于标识是处理器类;
@RequestMapping:请求到处理器功能方法的映射规则。

<beans>
<!-- HandlerMapping -->
    <bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>
      
    <!-- HandlerAdapter -->
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
     
    <!-- ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/view/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

PS:spring3.2版本后 DefaultAnnotationHandlerMapping由 RequestMappingHandlerMapping取代;AnnotationMethodHandlerAdapter由 RequestMappingHandlerAdapter取代

HelloWorldController

 

@Controller
public class HelloWorldController {
    @RequestMapping(value="/helloAnotation",method=RequestMethod.GET)
    public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp){
           ModelAndView mv = new ModelAndView();
           mv.addObject("message", "Hello World,spring anotation");
           mv.setViewName("hello");
           return mv;
        } 
}

 

在web容器里面部署及运行你的工程,在浏览器里面访问 ip:port/helloAnotation即可在页面看到 Hello World,spring anotation

 

转载于:https://www.cnblogs.com/powerwu/articles/4568029.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值