记录下学习spring-mvc的技术要点,项目结构路径如下:

1. 首先要在web.xml中添加Servlet和filter的配置:

    <!-- 转码,防止乱码-->
     <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <!-- spring 核心 servlet-->
    <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param> <!-- 指定spring 核心的配置文件-->
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-servlet.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

2. spring-servlet.xml的配置如下

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-3.0.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-3.0.xsd">

    <!-- 导入spring容器的bean
    <import resource="classpath:applicationContext-*.xml" />
    -->
    <!-- 启动注解驱动的Spring MVC功能,注册请求url和注解POJO类方法的映射 -->
    <mvc:annotation-driven />

    <context:annotation-config />
    <!-- 启动包扫描功能,以便注册带有@Controller、@Service、@repository、@Component等注解的类成为spring的bean -->
    <context:component-scan base-package="com.xx.spring.mvc.demo.controller" />

    <!-- .do 映射对应名字的jsp-->

    <!-- 对模型视图名称的解析,在请求时模型视图名称添加前后缀 -->
     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
        p:prefix="/WEB-INF/view/" p:suffix=".jsp" />

    <!--直接转发  将.do请求转发为jsp-->
    <mvc:view-controller path="/add.do" view-name="add"/>

</bean>

3. spring 通过注解方式实现的controller

//表示这是一个controller类
@Controller
//表示这个类所有方法都是在/mvc/myMvc/路径下,其中mvc是项目名
@RequestMapping(value = "/myMvc")
public class DemoController {

    /**
     * 表示对应/mvc/myMvc/zhangsan 这类请求
     * @PathVariable("name") String name 表示将uri的变量作为一个参数使用
     */
    @RequestMapping(value="/{name}")
    public ModelAndView myMvc(@PathVariable("name") String name, HttpServletRequest request,
                              HttpServletResponse response,ModelMap modelMap){
        modelMap.put("name",name);
        /**
         * /welcome 通过下面的配置映射到了 /WEB-INF/view/welcome.jsp上
         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/view/" p:suffix=".jsp" />
         */
        return new ModelAndView("/welcome",modelMap);
    }

    /**
     *
     * @param girl 前台输入页面控件name属性和po类BeautifulGirl的属性一样对应
     *             使用@ModelAttribute命令可以在调用方法前自动封装一个BeautifulGirl的对象girl
     * @param request
     * @param response
     * @param modelMap
     * @return
     */
    @RequestMapping(value = "/addGirl")
    public ModelAndView addUser(@ModelAttribute("girl")BeautifulGirl girl, HttpServletRequest request,HttpServletResponse response,ModelMap modelMap){
        modelMap.put("girl",girl);
        return  new ModelAndView("/welcomeGirl",modelMap);
    }

}

4. pojo类 BeautifulGirl

public class BeautifulGirl {

    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

5. add.jsp

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

<html>
<body>
        <form action="<%=basePath%>/myMvc/addGirl.do" method="post">
            姓名:<input type="text" name="name"/><br>
            年龄:<input type="text" name="age"/><br>
            <input type="submit" value="提交" />

        </form>
</body>
</html>

6. welcomeGirl.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.jd.spring.mvc.demo.po.BeautifulGirl" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    String name = (String)request.getAttribute("name");
    BeautifulGirl beautifulGirl = (BeautifulGirl)request.getAttribute("girl");
%>

<html>
<body>
        Hello,美女.
        你的名字:<%=beautifulGirl.getName() %> <br>
        你的姓名:<%=beautifulGirl.getAge()%>
</body>
</html>

Spring mvc 学习笔记的更多相关文章

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. Spring MVC 学习笔记(整理)

    SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...

  3. spring MVC学习笔记

    为开发团队选择一款优秀的MVC框架是件难事儿,在众多可行的方案中决择需要很高的经验和水平.你的一个决定会影响团队未来的几年.要考虑方面太多: 1.简单易用,以提高开发效率.使小部分的精力在框架上,大部 ...

  4. Spring MVC学习笔记——SiteMesh的使用(转)

    转自 SiteMesh的使用 SiteMesh的介绍就不多说了,主要是用来统一页面风格,减少重复编码的. 它定义了一个过滤器,然后把页面都加上统一的头部和底部. 需要先在WEB-INF/lib下引入s ...

  5. Spring MVC学习笔记--认识SpringMVC

    Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框 ...

  6. Spring MVC 学习笔记 json格式的输入和输出

    Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --> <dep ...

  7. spring mvc学习笔记一:hello world

    下面是创建springmvc简单案例的步骤: 项目的目录结构如下: 此案例使用maven构建. 第一步:创建动态web工程,然后项目->configure->convert to mave ...

  8. Spring MVC学习笔记——用户增删该查和服务器端验证

    建立一个动态web项目,起名为SpringMVC_crud 导包,其中包括jstl的一些包等 1.先写一个User.java,是用户类 文件User.java文件 package org.common ...

  9. Spring MVC学习笔记——Welcome

    参考: http://blog.csdn.net/hehexiaoyou/article/details/23747617 http://www.codingyun.com/article/47.ht ...

随机推荐

  1. DbMigration使用方法

    1.Enable-Migrations -ContextTypeNameLITCS.Data.gmisContext Enable-Migrations  命令创建了一个新的Migrations文件夹 ...

  2. 转:PostgreSQL Cheat Sheet

    PostgreSQL Cheat Sheet CREATE DATABASE CREATE DATABASE dbName; CREATE TABLE (with auto numbering int ...

  3. 打不开tomcat

    org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 59; schema_reference.4: 无法读取方案文档 'http: ...

  4. windows server2008 kettle部署

    kettle部署需要有jdk环境,所以需要配置环境变量. 1.首先配置jdk,将jdk压缩包解压到c盘下 增加系统变量:JAVA_HOME:c:\jdk 在path后追加: %JAVA_HOME%\b ...

  5. java-注解

    概念 Annontation是Java5开始引入的新特征.中文名称一般叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据与程序元素(类.方法.成员变量等)进行关联.更通俗的意思是为程序 ...

  6. STM32的DMA

    什么是DMA?其全称是:Direct Memory Access:根据ST公司提供的相关信息,DMA是STM32中一个独立与Cortex-M3内核的模块,有点类似与ADC.PWM.TIMER等模块:主 ...

  7. WPF的ComboBox 数据模板自定义

    WPF的ComboBox 有些时候不能满足用户需求,需要对数据内容和样式进行自定义,下面就简要介绍一下用数据模板(DataTemplate)的方式对ComboBox 内容进行定制: 原型设计如下: 步 ...

  8. Java Servlet(八):EL自定义函数

    EL自定义函数:在EL表达式中调用的某个java类的静态方法,这个静态方法需在web应用程序中进行配置才可以被EL表达式调用. EL自定义函数可以扩展EL表达式的功能,让EL表达式完成普通java程序 ...

  9. 【转】Java 5种字符串拼接方式性能比较。

    最近写一个东东,可能会考虑到字符串拼接,想了几种方法,但对性能未知,于是用Junit写了个单元测试. 代码如下: import java.util.ArrayList; import java.uti ...

  10. ECshop中TemplateBeginEditable 和后台编辑讲解

    在ecshop的dwt文件里面经常发现有“<!-- TemplateBeginEditable name="doctitle" -->和<!-- #BeginLi ...