SpringMVC01

1.创建一个web项目  引入所需要的jar

2.在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">

    <!--  配置 springmvc的核心控制器
     这里的 <servlet-name>springmvc</servlet-name>
     springmvc就是规定了 我们springmvc的配置文件的名称
     <servlet-name>-servlet.xml
      -->
     <servlet>
     <servlet-name>springmvc</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     </servlet>

     <servlet-mapping>
     <servlet-name>springmvc</servlet-name>
     <url-pattern>/</url-pattern>
     <!--  为什么不能配置/*
      我们打开浏览器 第一次访问  项目名/hello ,会通过我们的handlerMaping找 有没有bean name="/hello"!
      有就进入对应的controller进行操作,之后根据controller中返回的ModelAndView ===》hello01!
     让试图解析器进行解析 :解析之后 变成了/SpringMVC001/WEB-INF/jsp/hello01.jsp

     如果我们配置的是 /*  那么解析之后的路径也会被当成一个Bean  name来处理,很显然我们没有这个bean,所以会报错!

     /: 只会匹配  /login    /index   不能匹配  /*.jsp 这样的后缀url
     /*:匹配所有的请求 所以我们hello01.jsp 也会被拦截
       -->
     </servlet-mapping>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

web.xml文件

3.在web-inf目录下创建springmvc的核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
    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/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--  采用默认的方式  BeanNameUrlHandlerMapping -->
 <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>

 <!-- name="/hello" 用户的请求   class就是我们的Controller处理器-->
 <bean name="/hello" class="cn.bdqn.controller.HelloController"/>

<!-- 视图解析器         项目名/web-inf/jsp/springmvc.jsp  需要设置前缀 和后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/jsp/"/>
    <property name="suffix" value=".jsp"/>

</bean>

</beans>

springmvc-servlet.xml核心配置文件

4.创建对应的controller文件

public class HelloController extends AbstractController { // 第一个springmvc小例子
    /**
     * handleRequestInternal():对应struts2的 execute()
     * ModelAndView:返回值   需要核心配置文件中的试图解析器 解析
     */
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        System.out.println("第一个springmvc小例子....");
        // hello01就是我们返回的视图名称 但是 现在只是一个字符串
        return new ModelAndView("hello01");
    }
}

HelloController代码

5.在web-inf下新建jsp文件夹,之后再jsp文件夹下面新建hello01.jsp页面即可

6.向前台页面传值

public class HelloController extends AbstractController {// 可以看出来
                                                            // 这一个controller中只能有一个方法

    /**
     * 03.向前台传递一个Map集合
     *
     */
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        System.out.println("向前台传递一个Map集合");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("1", "大家辛苦1");
        map.put("2", "大家辛苦2");
        map.put("3", "大家辛苦3");
        return new ModelAndView("hello03", "map", map);
    }

    /**
     * 02.向前台界面传递值
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        System.out.println("进入了向前台界面传递值的方法..... ");
        // request.setAttribute("result", "数据是从后来获取的!");
        // 我在返回视图的时候 携带数据
        return new ModelAndView("hello02", "result", "数据是从后来获取的!");
    }
    */
    /** 01.
     * handleRequestInternal():对应struts2的 execute()
     * ModelAndView:返回值   需要核心配置文件中的试图解析器 解析

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        System.out.println("第一个springmvc小例子....");
        // hello01就是我们返回的视图名称 但是 现在只是一个字符串
        return new ModelAndView("hello01");
    }
    */
}

HelloController中增加代码

7.在jsp文件夹下面新增需要的两个界面  其余代码不动

  <body>
  获取后台controller中的result值:${result}
  </body>

hello02.jsp

<%--引入jstl标签库--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<body>

    获取后台controller中的map集合的值: 单独的获取一个值=====》${map["1"]}
    <br />
    <%-- 使用循环 遍历 map集合   --%>
    <c:forEach items="${map}" var="m">
      ${m.key}=======>${m.value}<br />
    </c:forEach>

</body>

hello03.jsp

=================修改核心配置文件的位置和名称=======================

 <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:/springmvc-servlet.xml</param-value>
     </init-param>
     </servlet>

     <servlet-mapping>
     <servlet-name>springmvc</servlet-name>
     <url-pattern>/</url-pattern> 

只需要修改web.xml中的servlet节点

然后把核心配置文件放到src下面即可!

时间: 2024-10-11 06:39:20

SpringMVC01的相关文章

springmvc-01 简述

[TOC] MVC的流程 SSM SSM:SpringMvc(完成数据的封装,页面的跳转的逻辑) ?? ??? ?? ?Spring() ?? ??? ?? ?Mybatis(持久化框架.ORM Object Relative Mapping 对象关系映射) springMVC流程 graph TD A[客户] -->| | B(控制器 Servlet) B --> C( HandlerMapping) C --> D[Controller1] C --> E[Controller

SpringMvc-01

1.需要的jar包: commons-logging-1.1.3.jar spring-aop-4.0.0.RELEASE.jar spring-beans-4.0.0.RELEASE.jar spring-context-4.0.0.RELEASE.jar spring-core-4.0.0.RELEASE.jar spring-expression-4.0.0.RELEASE.jar spring-web-4.0.0.RELEASE.jar spring-webmvc-4.0.0.RELEA

java:Springmvc框架2(Ajax,Interceptor,)

1.springmvcAjax: 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:context="ht

使用 maven 构建 SpringMVC

引言 最近需要使用SpringMVC做一个小项目,之前对SpringMVC没什么了解,所以先写一个SpringMVC的小Demo练习一下. 使用Maven构建项目 IDE = Eclipse 首先创建一个Maven的webapp项目,Jar包的管理就交给Maven来完成:POM内容如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche

tomcat无法正常启动的一个原因

简要报错信息: java.lang.IllegalArgumentException: Document base E:\apache-tomcat-7.0.65\webapps\springmvc01 does not exist or is not a readable directory 如果遇到这种莫名其妙的问题,根据报错信息可以看到应该是当前的tomcat某个配置文件里有springmvc01这个工程项目的信息,我们一个一个地来排查,发现是 E:\tomcat\apache-tomca

[一]初识SpringMVC

是什么? web开发框架 为什么用? 功能强大 怎么做? 1.导入jar包 2.配置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:schemaLoc

SpringMVC学习笔记一:采用注解式搭建简单springMVC环境

搭建的环境使用的是maven项目 项目目录树: 搭建环境使用的jar包,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.or

Java拷贝文件到对应的路径

最近发现公司部署项目上去的时候仅需要针对个别的class文件或者其他个别的文件进行覆盖就行.每次都觉得手动找路径而且又要找文件很麻烦.所以写了一个copy文件的代码出来. 代码如下 package com.controller; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.File; import jav

springMVC环境搭建(1)

工作一年以来,写的都是.net,最近比较闲,想把之前学过的java相关的东西捡起来,也学点新的东西.以前做过SSH架构,一直好奇spring mvc是怎么样的,所以今天试试看. 总体的代码结构 手动输入地址:http://localhost:8080/SpringMVC01/Login/getLoginPage,运行结果如下 登陆进去后为: 下面是编码过程. 第一步 新建一个Dynamic Web Project,名称为:SpringMVC01 修改WEB-INF下面的web.xml文件 <?x