【J2EE实验-3】Spring MVC

一、实验目的

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>

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>

四、实验总结

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

<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分发请求的必要支持

全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务