SpringMVC的注解开发入门

1.Spring MVC框架简介

  • 支持REST风格的URL
  • 添加更多注解,可完全注解驱动
  • 引入HTTP输入输出转换器(HttpMessageConverter)
  • 和数据转换、格式化、验证框架无缝集成
  • 对静态资源处理提供特殊支持
  • 更加灵活的控制器方法签名,可完全独立于Servlet API

2.Spring MVC框架结构,执行流程

3.如何在应用中使用Spring-MVC?

  1. 在应用中添加Spring框架支持;
  2. 在web.xml中配置Spring-MVC的请求转发器(前端控制器)
  3. 编写Spring-MVC的配置文件
  4. 将任意JavaBean通过注解配置成Controller(控制器)并注解其中的方法
  5. 完成

4.今天我们先来了解一下我们注解开发的小例子(简单登录)

   一:转发(forward)

源码介绍:

1.lib包(jar包)和 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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <display-name></display-name>
  <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:applicationContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
  <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

2.index.jsp(登录主页)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>登录主页</title>
</head>
<body>
    <form action="frist.do" method="post">
        用户名:<input type="text" name="name" /> 年龄:<input type="text"
            name="age" /> <input type="submit" value="提交" />
    </form>

</body>
</html>

3.hello.jsp(登录成功后跳到的页面)和 error.jsp(登录失败跳到的页面)

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    <title>成功欢迎页面</title>
  </head>
  <body>
  欢迎您<br/>
    姓名:${name}<br/>
    年龄:${age }
  </body>
</html>

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>错误页面</title>
</head>
<body>这是错误页面
</body>
</html>

4.MyController.java(定义自己的处理器)

package cn.zhang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

//定义自己的处理器

@Controller
public class MyController{
    @RequestMapping(value="/frist.do",produces="text/html;charset=utf-8",method=RequestMethod.POST)
    public String frist(Model model,String name,int age){
        model.addAttribute("name", name);
        model.addAttribute("age", age);
        System.out.println(name);
        System.out.println(age);
        return "forward:/hello.jsp";
    }
}

5.applicationContext.xml(Spring的配置文件)

<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <!-- 使用注解方式完成映射 -->
    <context:component-scan base-package="cn.zhang.controller"></context:component-scan>
    <!-- mvc的注解驱动 -->
    <mvc:annotation-driven/>

</beans>

效果展示:

1.输入成功的情况

点击提交跳到成功页面:

如果输入其他的信息则会跳到错误页面:

   二:重定向(redirect)

我们只要改我们的控制器就行了

package cn.zhang.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

//定义自己的处理器

@Controller
public class MyController{

    @RequestMapping(value="/frist.do")//登录请求的是frist.do
    public String frist(Model model,String name,int age){

        return "redirect:hello.do";//重定向到hello.do
    }

    @RequestMapping(value="/hello.do")
    public String hello(Model model,String name,int age){
        model.addAttribute("name", name);
        model.addAttribute("age", age);
        System.out.println(name);
        System.out.println(age);
        if (name.equals("1")&&age==1) {
            return "redirect:/hello.jsp";//重定向到hello.jsp
        }else {
            return "redirect:/error.jsp";//重定向到error.jsp
        }

    }
}

时间: 2024-10-14 11:22:40

SpringMVC的注解开发入门的相关文章

Spring的IOC注解开发入门1

基本知识点如下: 引入注解约束,配置组件扫描 类上的注解: @Conponent  @Controller @Service @Repository 普通属性的注解   @value 对象属性的注解    @Resource   @Autowired  @Qualifier Bean生命周期,初始化与销毁: @PostConstruct @PreDestroy Bean作用范围:@Scope("prototype")  , 默认是singleton 1.创建web项目引入jar包 除了

Spring MVC注解开发入门

注解式开发初步 常用的两个注解: @Controller:是SpringMVC中最常用的注解,它可以帮助定义当前类为一个Spring管理的bean,同时指定该类是一个控制器,可以用来接受请求.标识当前类是控制层的一个具体的实现 @requestMapping:放在方法上面用来指定某个方法的路径,当它放在类上的时候相当于命名空间需要组合方法上的requestmapping来访问 扩充: 注解名称 作用 @Controller 注解标明该类需要Spring容器自动加载,将一个类成为 Spring 容

SpringMvc——进行注解开发的基本配置

入手文章,spring大神请绕行. 零,jar包引入 这个是我的myeclipse项目中的截图,如果使用idea进行开发的话,记得要在libraries中引入servlet-api的jar包,不然debug的时候会报错. 一,配置前端控制器 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmln

Spring的IOC注解开发入门2

注解方式设置属性的值 在我们IOC基于xml属性注入的方式中有(一般推荐set方法) 构造方法注入普通值:<constructor-arg>的使用 set方法注入普通值:<property>的使用   注入对象值:ref的使用 SPEL方式注入普通值与对象值 #{SPEL} P名称空间方式注入普通值与对象值 在我们IOC基于注解方式开发中 普通属性:Value 对象属性:AutoWired :设置对象类型的属性的值,按照类型注入.习惯是按照名称完成属性注入,那么和以下注解配合使用@

Spring注解开发系列 VIII --- SpringMVC

SpringMVC是三层架构中的控制层部分,有过JavaWEB开发经验的同学一定很熟悉它的使用了.这边有我之前整理的SpringMVC相关的链接: 1.SpringMVC入门 2.SpringMVC进阶 3.深入SpringMVC注解 看过之后大致对springmvc有一个了解,但对于真正完全掌握springmvc还差得远,本篇博客主要针对的是springmvc的注解开发,传统的项目使用spingmvc避免不了地需要在web.xml里配置前端控制器等等,想要在项目中优雅地去掉这些配置,还得学习如

springMVC入门程序-注解开发环境配置

在进行springMVC开发时,我们也希望通过注解进行开发,这样比较快捷方便.现将springMVC开发步骤记录如下: 1.新建web程序,导入springMVC需要的jar包: 2.配置web.xml文件.主要是进行servlet的配置. 1 <servlet> 2 <servlet-name>springmvc</servlet-name> 3 <servlet-class>org.springframework.web.servlet.Dispatch

SpringMVC注解开发初步

一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在applicationContext.xml中进行配置XmlViewResolver,以及处理器配置 myView.xml: 实现效果: 二.SpringMVC注解开发 常用的两个注解: @Controller:是SpringMVC中最常用的注解,它可以帮助定义当前类为一个Spring管理的bean

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

SpringMVC应用------基于注解的入门实例 目录 1.在 web.xml 文件中配置前端处理器 2.在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器 3.编写 Handler 4.编写 视图 index.jsp 5.在浏览器中输入:http://localhost:8080/SpringMVC-003/hello 前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程.但是我们发现基于 XML 的配置还是比较麻烦的,而且,每个

04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

 1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mvc结构 DispatcherServlet:中央控制器,把请求给转发到具体的控制类 Controller:具体处理请求的控制器(配置文件方式需要配置,注解方式不用配置) handlerMapping:映射处理器,负责映射中央处理器转发给controller时的映射策略 ModelAndView:服务