springMVC笔记(一)

今天写一个springMVC的入门日志,使用spring4.1.6。

加入maven依赖,pom.xml如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com</groupId>
    <artifactId>springmvc</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>springmvc Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- START SERVLET -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <port>8080</port>
                    <path>/springmvc</path>
                    <uriEncoding>UTF-8</uriEncoding>
                    <finalName>springmvc</finalName>
                    <server>tomcat7</server>
                </configuration>
            </plugin>
        </plugins>
        <finalName>springmvc</finalName>
    </build>
</project>

springMVC依赖的jar包如下:

一、配置web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name>Archetype Created Web Application</display-name>

  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/root-context.xml</param-value>
    </context-param>
    <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/mvc-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
</web-app>

二、mvc-context.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:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
    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="com.springmvc.demo.controller" />
    <mvc:annotation-driven />
    <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /> -->
    <!-- <mvc:default-servlet-handler/> -->

    <mvc:resources location="/resource/images/" mapping="/images/**" />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/" />
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

说明:

<context:component-scan base-package="com.springmvc.demo.controller" />是将controller让spring去扫描这个包下的@Controller注解的bean,交给spring上下文去管理(依赖注入)。
<mvc:annotation-driven />这句话其实做了很多事,它注册了下面这些特殊用途的bean:
  1. RequestMappingHandlerMapping处理controller内的@RequestMapping注解,将请求url映射为相应的controller内的方法
  2. BeanNameUrlHandlerMapping 将请求url映射为bean的name 
  3. RequestMappingHandlerAdapter 负责调用controller相应的方法并处理方法的其他注解

还有其他一些bean,在此不列出。

新建一controller:

package com.springmvc.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import com.springmvc.demo.model.User;

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/add")
    public ModelAndView addUser(@RequestParam String username,@RequestParam String password,@RequestParam int id){

        ModelAndView mv = new ModelAndView();
        mv.setViewName("hello");
        User u = new User();
        u.setUsername(username);
        u.setPassword(password);
        u.setId(id);
        mv.addObject("user", u);

        return mv;
    }

}
输入url:http://localhost:8080/springmvc/user/add?username=yang&password=123&id=1234将跳转到hello.jsp:
<!DOCTYPE html>
<html>
<body>
${user.username},${user.password},${user.id}
</body>
</html>

可以看g以提交的参数。

时间: 2024-10-09 20:58:31

springMVC笔记(一)的相关文章

SpringMVC笔记——SSM框架搭建简单实例

落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发的框架,对于新手来说也是比较容易学习入门的.虽说容易,但在框架搭建过程中仍然遇到了许多问题,因此用实例记录下来吧. 实例 第一步——导包 Spring框架包及其依赖包 MyBatis框架包及其依赖包 MyBatis-EhCache架包 C3P0架包 MySql数据库驱动包 项目架包如下: 项目结构如

SpringMVC笔记(八)SpringMVC中的参数传递

接收请求参数 一.使用HttpServletRequest @RequestMapping("/login") public String login(HttpServletRequest request){ String name = request.getParameter("name"); String pwd = request.getParameter("pwd"); return "success"; } 二.参数

springMVC笔记系列(7)——HiddenHttpMethodFilter过滤器

什么是REST?首先来段介绍吧. REST: 即 Representational State Transfer. (资源)表现层状态转化. 是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解. 扩展方便,所以正得到越来越多网站的采用. 资源(Resources) : 网络上的一个实体,或者说是网络上的一个具体信息.它可以是一段文本.一张图片.一首歌曲.一种服务, 总之就是一个具体的存在.可以用一个URI(统一资源定位符)指向它, 每种资源对应一个特定的 URI . 要获取这个资源

【SpringMVC笔记】第五课 改进Handler处理器和视图解析器

第四课 已经对注解的映射器和适配器进行了改进. 接下来需要对Handler处理器和视图解析器进行改进. <!-- 配置handler处理器 --> <bean class="com.king.controller.UserController"></bean> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourc

springMVC笔记系列(9)——RequestHead注解

与之前的注解类似,各个注解都是围绕请求的不同要素创建的,为的是映射各种不同条件的请求并处理.. 请求头内容也是请求的要素之一,映射它的注解是@RequestHead. 我们可以对请求的诸多head条目进行条件映射,并取出相应的值给控制器类的处理方法的参数. package com.happyBKs.springmvc.handlers; import org.springframework.stereotype.Controller; import org.springframework.web

框架SpringMVC笔记系列 二 传值

主题:SpringMVC(第一节中再回顾复习一次) 学习资料参考网址: 1.http://www.icoolxue.com 2.http://haohaoxuexi.iteye.com/blog/1343761(Great!) 3.推荐:http://haohaoxuexi.iteye.com/ (backUp) 1.Spring MVC中的若干基本注解.(基于注解的Spring MVC简单介绍) SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都

SpringMVC笔记(四)拦截器

一.拦截器:Spring MVC也可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必 须实现HandlerInterceptor接口 二.实现步骤: 1.自定义实现类实现HandlerInterceptor接口 2.在springMVC中配置文件中的配置相应的拦截器 实现的代码: 1.自定义实现类 package com.neuedu.springmvc.interceptor; import javax.servlet.http.HttpServletRe

SpringMVC笔记(五)文件的上传下载

一.SpringMVC实现文件的上传 Spring MVC 上下文中默认没有为文件上传提供了直接的支持,因 此默认情况下不能处理文件的上传工作, 如果想使用 Spring 的文件上传功能,需现在上下文中配置 CommonsMultipartResovler: 二.文件上传的步骤:    1.加入jar包:        commons-fileupload-1.3.1.jar        commons-io-2.4.jar 2.在SpringMVC配置文件中配置CommonsMultipar

SpringMVC笔记(六)SpringMVC的转发和重定向

一.转发和重定向 一般情况下,控制器方法返回字符串类型的值会被当成逻辑视图名处理 如果返回的字符串中带 forward: 或 redirect: 前缀 时,SpringMVC 会对他们进行特殊处理: 将 forward: 和 redirect: 当成指示符,其后的字符串作为 URL 来处理 –redirect:/success.jsp:会完成一个到 success.jsp 的重定向的操作        –forward:/success.jsp:会完成一个到 success.jsp 的转发操作