• SpringMVC的入门示例


    1、配置流程说明

      第一步:导入包

      第二步:构建一个请求,编写请求页面

      第三步:配置核心控制器

      第四步:构建一个业务控制器

      第五步:编写Spring配置文件

      第六步:编写一个返回页面

    2、配置流程---基于 XML 的配置

      ① 导入包

      

      ② 创建一个请求的发送页面

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10   <a href="${pageContext.request.contextPath }/say.mvc">say hello</a>
    11 </body>
    12 </html>

      ③ 在 web.xml 配置核心控制器

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
     3   <display-name>springmvc-demo-01-xml-start</display-name>
     4   
     5   <!-- 配置核心控制器拦截所有的请求 -->
     6   <servlet>
     7     <servlet-name>dispatcherServlet</servlet-name>
     8     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
     9     <!-- 指定配置文件的路径 -->
    10     <init-param>
    11        <!-- 注意:任何框架的参数名都可以在代码里面找到 -->
    12        <param-name>contextConfigLocation</param-name>
    13        <param-value>classpath:spring-mvc.xml</param-value>
    14     </init-param>
    15   </servlet>
    16   
    17   <servlet-mapping>
    18     <servlet-name>dispatcherServlet</servlet-name>
    19     <url-pattern>*.do</url-pattern>
    20   </servlet-mapping>
    21   
    22   <welcome-file-list>
    23     <welcome-file>index.html</welcome-file>
    24     <welcome-file>index.htm</welcome-file>
    25     <welcome-file>index.jsp</welcome-file>
    26     <welcome-file>default.html</welcome-file>
    27     <welcome-file>default.htm</welcome-file>
    28     <welcome-file>default.jsp</welcome-file>
    29   </welcome-file-list>
    30 </web-app>

      ④ 创建一个业务控制器

     1 package cn.gzsxt.controller;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.web.servlet.ModelAndView;
     7 import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
     8 
     9 /**
    10  * 业务控制器,必须继承一个类MultiActionController或它的父类
    11  * @author ranger
    12  *
    13  */
    14 public class HelloController extends MultiActionController {
    15     /**
    16      * 执行方法的参数是固定.HttpServletRequest request,HttpServletResponse response
    17      */
    18     public ModelAndView say(HttpServletRequest request,HttpServletResponse response){
    19         System.out.println("-你好世界!-");
    20         ModelAndView mv=new ModelAndView();
    21         //设置返回的视图
    22         mv.setViewName("/hello.jsp");
    23         mv.addObject("msg", "张三");
    24         return mv;
    25     }
    26 }

      ⑤ 创建一个 Spring 的配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
     5  <!-- 请求路径与业务控制器的执行方法的关系 -->
     6  <!-- 请求与执行方法的规则:
     7  1. SpringMVC会根据请求的名字:/say.mvc的say,去自动找到say这个方法
     8   -->
     9  <bean name="/say.mvc" class="cn.gzsxt.controller.HelloController"></bean>
    10 <!-- 2.视图解释器,不用配置.默认已经配置了jsp视图解释器了 -->
    11 </beans>

      ⑥ 创建一个返回的视图页面

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     7 <title>Insert title here</title>
     8 </head>
     9 <body>
    10  ${msg },欢迎您!
    11 </body>
    12 </html>

      问题:根据上面,我们有什么不满意的地方?

      答:① 业务控制器需要继承一个类或继承一个接口(这种设计称为入侵性的设计),优秀的设计不需要继承任何东西的;

        ② 业务控制器方法的参数是固定的,不人性化,我们希望可以做到需要什么参数就加什么参数,而不写死它;

        ③ 返回的路径明明就是一个字符串就搞定的事,非要使用一个ModelAndView一个类来写。 

      SpringMVC基于XML的配置是SpringMVC的第一版,发行在spring2.5里面. 非常难用,Spring团队很快就接受社区的建议,在Spring3.0就对SpringMVC做出了重大的修改.其中最大修改就是将原来基于XML的配置,修改为基于注解.该方案在下节...

  • 相关阅读:
    readonly const
    多线程的安全性
    【C++】operator运算符重载
    C++ 多态的实现及原理(转载)
    C语言宽字符处理函数对照表
    UTF8编码规则(转)
    PE文件结构(转)
    C语言中宏定义
    汇编语言移位指令
    数组指针应该结合二维数组多维数组来理解
  • 原文地址:https://www.cnblogs.com/maigy/p/10735113.html
Copyright © 2020-2023  润新知