SpringMVC应用------基于注解的入门实例

SpringMVC应用------基于注解的入门实例

目录


1、在 web.xml 文件中配置前端处理器

2、在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器

3、编写 Handler

4、编写 视图 index.jsp

5、在浏览器中输入:http://localhost:8080/SpringMVC-003/hello



  前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程。但是我们发现基于 XML 的配置还是比较麻烦的,而且,每个 Handler 类只能有一个方法,在实际开发中肯定是不可能这样来进行开发的。那么这篇博客我们就讲解实际开发中用的最多的基于注解配置的SpringMVC配置。

    项目结构为:

  

1、在 web.xml 文件中配置前端处理器

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://java.sun.com/xml/ns/javaee"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
     http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC_01</display-name>
  <!-- 配置前端控制器DispatcherServlet -->
  <servlet>
    <servlet-name>springmvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--springmvc.xml 是自己创建的SpringMVC全局配置文件,用contextConfigLocation作为参数名来加载
        如果不配置 contextConfigLocation,那么默认加载的是/WEB-INF/servlet名称-servlet.xml,在这里也就是 springmvc-servlet.xml
      -->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
  </servlet>

  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <!--第一种配置:*.do,还可以写*.action等等,表示以.do结尾的或者以.action结尾的URL都由前端控制器DispatcherServlet来解析
        第二种配置:/,所有访问的 URL 都由DispatcherServlet来解析,但是这里最好配置静态文件不由DispatcherServlet来解析
        错误配置:/*,注意这里是不能这样配置的,应为如果这样写,最后转发到 jsp 页面的时候,仍然会由DispatcherServlet进行解析,
                    而这时候会找不到对应的Handler,从而报错!!!
      -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

2、在 springmvc.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"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">
    <!--注解处理器映射器  -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>

    <!--注解处理器适配器  -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>  

    <!--使用mvc:annotation-driven可以代替上面的映射器和适配器
        这里面会默认加载很多参数绑定方法,比如json转换解析器就默认加载,所以优先使用下面的配置
      -->
    <!-- <mvc:annotation-driven></mvc:annotation-driven> -->

    <!--单个配置Handler  -->
    <!-- <bean class="com.ys.controller.HelloController"></bean> -->

    <!--批量配置Handler,指定扫描的包全称  -->
    <context:component-scan base-package="com.ys.controller"></context:component-scan>

    <!--配置视图解析器  -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 返回视图页面的前缀 -->
        <property name="prefix" value="/WEB-INF/view/"></property>
        <!-- 返回页面的后缀 -->
        <property name="suffix" value=".jsp"></property>
    </bean>
</beans>

3、编写 Handler

package com.ys.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
//注意@Controller注解和@RequestMapping注解的用法
//使用@Controller注解表示这个类是一个Handler
@Controller
public class HelloController {

    //@RequestMapping注解括号里面的表示访问的URL
    @RequestMapping("hello")
    public ModelAndView hello(){
        ModelAndView modelView = new ModelAndView();
        //类似于 request.setAttribute()
        modelView.addObject("name","张三");
        //配置返回的视图名,由于我们在springmvc.xml中配置了前缀和后缀,这里直接写视图名就好
        modelView.setViewName("index");
        //modelView.setViewName("/WEB-INF/view/index.jsp");
        return modelView;
    }

}

4、编写 视图 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>
hello:${name}
</body>
</html>

5、在浏览器中输入:http://localhost:8080/SpringMVC-003/hello

原文地址:https://www.cnblogs.com/yulibo/p/9392994.html

时间: 2024-10-10 06:06:21

SpringMVC应用------基于注解的入门实例的相关文章

SpringMVC详解(三)------基于注解的入门实例

前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程.但是我们发现基于 XML 的配置还是比较麻烦的,而且,每个 Handler 类只能有一个方法,在实际开发中肯定是不可能这样来进行开发的.那么这篇博客我们就讲解实际开发中用的最多的基于注解配置的SpringMVC配置. 本篇博客源码下载 项目结构为: 1.在 web.xml 文件中配置前端处理器 <?xml version="1.0" encoding="UTF-8"?> &

Mybatis(二)基于注解的入门实例

前言 上一篇简单的介绍了Mybatis的概念和基于XML来实现数据库的CRUD,这篇给大家实现基于注解的CRUD. 一.初始搭建 在基于注解当中前四步和上一篇基于XML是一样的,分别是: 1)创建数据库表 2)创建一个Java项目,并导入相应的jar包 3)项目中添加数据库配置文件 mybatis-configuration.xml 4)定义表对应的实体类 二.定义操作 user 表的注解接口 UserMapper.java package com.lance.mybatis.annocatio

SpringMVC之基于注解的Controller

参考博客:https://www.cnblogs.com/qq78292959/p/3760560.html Controller注解: 传统风格的Controller需要实现Controller接口,而现在我们只需要用注解就行了. 基于注解的控制器有几个优点,1.一个控制器可以处理多个action(动作),而一个实现 Controller接口的控制器只能处理一个动作.    2.基于注解的控制器请求映射不需要存储在配置文件中,使用RequesetMapping注解类型就可以对一个方法进行请求处

springMVC学习(基于注解的MVC)

今天这篇博客给大家带来基于注解的springMVC开发,大家之前有没有想过一个问题,就是我们之前基于配置文件配置写出来的那些Controller只能默认处理一个方法,那么我如果想像structs2那样子来让一个Controller可以处理多个请求,对于不同的请求,跳转进不同的方法来做处理,这样是极好的,springMVC基于注解的开发,就可以完成上边的这些需求,下面我们看一个例子. 添加jar文件 首先我们需要添加需要的jar文件,这里只是比上一篇springMVC helloworld多了一个

dubbo-整合springboot、基于注解的简单实例

一.导包: <dependencies> <dependency> <groupId>com.alibaba.boot</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>0.2.0</version> </dependency> <dependency> <groupId>org.spr

springmvc中基于注解的注册

老样子先数据库中反射Cat.java 1 package com.hpe.bean; 2 // Generated 2016-11-18 11:07:54 by Hibernate Tools 3.5.0.Final 3 4 import javax.persistence.Column; 5 import javax.persistence.Entity; 6 import javax.persistence.GeneratedValue; 7 import static javax.pers

基于Express的入门实例

假设已经安装了node.js 我在F盘创建myapp文件夹,通过 npm init 命令为你的应用创建一个 package.json 文件 npm init 参数可按enter设置默认值,除了这个: entry point: (index.js) 再执行: npm install express --save 在myapp创建创建app.js var express = require('express'); var app = express(); app.get('/', function

springmvc中基于注解的登录

配置已经在前一个随笔中提到,下面直接写类. 首先通过数据库反射javabean文件User.java package com.hpe.bean; // Generated 2016-11-18 11:06:39 by Hibernate Tools 3.5.0.Final import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import

基于注解SpringMVC+freemarker实例

基于注解的SpringMVC+freemarker demo实例 web项目图 web.xml文件 Xml代码   <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http: