欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring MVC

程序员文章站 2022-06-13 20:53:23
...

一、实验目的

1.理解Spring MVC的处理流程
2. 掌握Spring MVC的基本使用
3. 掌握Spring MVC的参数传递

二、实验学时及环境

  1. 实验学时:2
  2. 实验环境:IDEA,JDK8,Tomcat7,Maven,Mysql5,Navicat
  3. 实验设备:PC

三、实验内容和步骤

(给出工程项目的代码结构图,以及关键代码的截图,并对程序的运行结果进行截图,保证截图的清晰。实验要求中提到“分析原因”的地方,实验报告中必须给予你的解释。)

1. 使用SpringMVC实现页面输出

(1)为超市订单管理系统搭建Spring MVC环境
(2)实现前端页面内输出“学框架就学Spring MVC!”
(3)HandlerMapping:BeanNameUrlHandlerMapping
(4)ViewResolver :InternalResourceViewResolver

导入jar包

  <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.1.3.RELEASE</version>
        </dependency>

在web.xml中配置Servlet

<!--—————————配置springmvc核心控制器DispatcherServlet————————-->
  <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>
    <!--配置标记容器在启动的时候就加载此DispatcherServlet,即自动启动-->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

创建SpringMvc的配置文件springmvc-servlet.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="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">

    <bean name="/welcome" class="com.wxl.smbms.servlet.test.IndexController"/>

    <!--Spring MVC的配置文件,网站跳转逻辑的控制-->
    <!-- 配置视图解析器,方便页面返回 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    </bean>
</beans>

创建控制器

public class IndexController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
        return new ModelAndView("index");
    }
}

在创建view

在webapp/web-inf/jsp/创建index.jsp

<body>
    <h2>学框架就学SpringMVC </h2>
  </body>

Spring MVC

2.更改Spring MVC的处理器映射的配置为支持注解式处理器.

(1)HandlerMapping:mvc:annotation-driven/
(2)ViewResolver:InternalResourceViewResolver
(3)加入Log4j进行后台日志输出

更改SpringMvc的配置文件springmvc-servlet.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="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">
    <!--Spring MVC的配置文件,网站跳转逻辑的控制-->
    <context:component-scan base-package="com.wxl.smbms.servlet">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    <mvc:annotation-driven/>
    <!-- 配置视图解析器,方便页面返回 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    </bean>
</beans>

更改控制器

@Controller
public class IndexController  {

    @RequestMapping("/welcome")
   public String index(){
       return "index";
   }
}

输入网址进行测试

3. 在上例的基础上,实现View到Contoller的参数传递:

(1)在index.jsp页面,输入用户编码
(2)点击提交按钮,页面跳转到success.jsp页面,并在该页面输出提交的用户编码
(3)要求在控制台输出从前台获取的用户编码的值

更改控制器

@Controller
public class IndexController  {
    @RequestMapping("/welcome")
   public String index(){
       return "index";
   }
    @RequestMapping("/index.html")
    public String index1(){
        return "index";
    }
    @RequestMapping("/test.html")
    public String test(@RequestParam String userCode , Model model){
        model.addAttribute("userCode",userCode);
        return "success";
    }
}

更改index.jsp

<body>
    <h2>学框架就学SpringMVC </h2>

    <form action="${pageContext.request.contextPath }/test.html">
        请输入userCode:
        <input name="userCode">
        <button type="submit" >提交</button>
    </form>

  </body>

添加页面success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
userCode:${userCode}
</body>
</html>

Spring MVC

Spring MVC

四、实验总结

可以用两种方法进行处理器映射,注解方式更为灵活。使用更加方便。

<context:component-scan base-package=“com.wxl.smbms.servlet”>的作用:
如果没有此标签,那么标注了@Controller的bean仅仅是一个普通的javabean,而不是一个可以处理请求的控制器
mvc:annotation-driven/的作用:
该标签会自动注册DefaultAnnotationHandlerMapping(处理器映射)与AnnotationMethodHandlerAdapter(处理器适配器)这两个bean ,springMVC需要通过这两个Bean实例来完成对@Controller和@RequestMapping等注解的支持,从而找出url与handler method的关系并予以关联完成spring容器中的这两个bean的注册,是springMVC为@Controller分发请求的必要支持

相关标签: J2EE作业