SpringMVC与Struts的区别。

一、基础jar包

  

二、①DispatcherServlet,handelMapping,webAction(colltroller),ModelAndView(Jsp,domain),ViewResolver

  ①配置SpringMVC的分发器Servlet

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
   </servlet>

<servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.action</url-pattern>
   </servlet-mapping>

  ②配置三种常用的处理器映射,映射不同的请求和相应控制器。

    1. <!-- beanName处理器映射(http://localhost:8080/SpringMVC/hi.action)(这样的映射可以更加清楚请求的具体控制器的名字) -->
    
        <bean id='beanNameUrlHandlerMapping' class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">
            <property name="order" value="1"/>
        </bean>     
                
                
       2.<!-- simpleURL处理器映射(http://localhost:8080/SpringMVC/abc.action) (这样可以配置多个链接的名称配置相同控制器来处理)-->
    
        <bean id='simpleUrlHandlerMapping' class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
               <property name="order" value="0"/>
               <property name="mappings">
                <props>
                    <prop key="/hi.action">hc</prop>
                    <prop key="/a.action">hc</prop>
                    <prop key="/b.action">hc</prop>
                    <prop key="/c.action">hc</prop>
                </props>
            </property>
        </bean>
    
    
       3.<!-- ControllerClassName映射(http://localhost:8080/SpringMVC/homeController.action)(直接根据控制器的名字来指定访问的链接,链接为控制器名称的前半部分,就是去掉后面controller后的前半部分,作为链接请求的时候,链接名称需要小写) -->
    
        <bean id="ControllerClassName" class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
        </bean>

  ③控制器实现类与三种常用控制器的配置(CommandController,SimpleFormController[post请求],wizardFromController[复杂表单])

           

    1.CommandController

    (命令控制器,这个控制器的原理是在控制器中直接注入前端的参数形成的对象;这个过程就是把参数绑定到命令对象中;)

  

   通过命令控制器的构造函数,实现前端参数到控制器中的命令对象绑定;   

public class PersonCommandController  extends AbstractCommandController {

    public PersonCommandController(){
//注册命令类
this.setCommandClass(Person.class);
this.setCommandName("person");
}
@Override
protected ModelAndView handle(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception { Person p = (Person) command;
System.out.println(p);
return new ModelAndView("index");
} }

       2.SimpleFormController[post请求]

  (简单表单控制器,如下图所示,当请求到指定的简单表单控制器的时候,根据jsp页面中的get和post方法的不同,经过控制器处理后,get的方法会返回到formView而post方法就会返回到success页面)

    
    

public class PersonFormController extends SimpleFormController{
public PersonFormController() {
this.setCommandClass(Person.class);
this.setCommandName("person");
} @Override
protected void doSubmitAction(Object command) throws Exception {
Person p = (Person) command;
System.out.println(p);
}
}

  3.wizardFormcontroller

  (导向标单控制器,控制器中一般有操作取消和保存的响应函数,在级联表单中,取消一般都会返回到第一页,保存就会把页面传递的参数注册到命令对象中)

public class MyWizardController extends AbstractWizardFormController {
public MyWizardController() {
this.setCommandClass(Person.class);
this.setCommandName("person");
} //取消
protected ModelAndView processCancel(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception { return new ModelAndView("wizard/jPersonBaseInfo");
} //完成
protected ModelAndView processFinish(HttpServletRequest request,
HttpServletResponse response, Object command, BindException errors)
throws Exception { Person p = (Person) command;
System.out.println(p); return new ModelAndView("index");
} }

在控制器中注册Person模型,请求数据被封装到(command对象)。在控制器中操作被转为Person对象的command对象,然后返回实例的ModelAndView,并有配置好的ViewResolver(内部视图资源解析器如下:)

<!-- 内部资源视图解析器  prefix + logicName + suffix /WEB-INF/jsps/ + index + .jsp-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <!-- 前缀 -->
       <property name="prefix" value="/WEB-INF/jsps/"/>
        <!-- 后缀 -->
        <property name="suffix" value=".jsp"/>
    </bean>

springMVC_配置文件搭建基础环境的更多相关文章

  1. springMVC_注解方式搭建基础环境

    ---恢复内容开始--- 一.jar包环境,web配置文件和Spring-MVC配置文件的,相关的modelAndview 1.配置DispatcherServlet <servlet>  ...

  2. (一)OpenStack---M版---双节点搭建---基础环境配置

    ↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 配置如下 本次搭建采用2台4核4G的虚拟机,也可以用2台2核4G 主机名 配置 网络 Contr ...

  3. EF6 在原有数据库中使用 CodeFirst 总复习(一、搭建基础环境)

    本来以为已经会了,可动手时发现许多问题还是模糊不清,正所谓眼高手低.只能重新查资料,再复习一遍. vs.net2013 ef6 mvc5 sqlserver2008   一.建立数据库  Bloggi ...

  4. CDH5.2+CM5.2+impala2+Spark1.1 集群搭建基础环境准备

    測试集群简单介绍:一共同拥有4台机器:10.10.244.136.10.10.244.137.10.10.244.138.10.10.244.139. 10.10.244.136是管理节点.另外3台是 ...

  5. django 学习笔记(一)搭建基础环境

    1.安装django 下载地址 https://github.com/django/django 解压后进入文件夹运行指令 >> python setup.py install 2.创建工 ...

  6. ASP.NET MVC4 微信公众号开发之网页授权(一):搭建基础环境

    首先你得注册并认证一个个人或企业的微信公众号===服务号从而确保获得以下接口权限: 然后打开公众号设置里的功能设置里找到业务域名和网页授权域名分别填上你的域名(注:已备案的域名),如下图所示: 到这里 ...

  7. dos基础+环境搭建基础理论

    dos基础 市面上两大操作系统 windows.*nix(unix.linux.mac.bsd(安全性比较高)) 后三种都属于unix的衍生版本 linux是为了兼容unix开发的,最后开放了源代码 ...

  8. Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

    [注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...

  9. CentOS6.5 PHP基础环境搭建 [个人整理-亲测可用]

    ** * CentOS6.5 搭建基础PHP环境(yum安装) * http://www.aiplaypc.com/160.html **   #安装需要的包,有依赖关系,自动帮你解决 yum ins ...

随机推荐

  1. python简单页面爬虫入门 BeautifulSoup实现

    本文可快速搭建爬虫环境,并实现简单页面解析 1.安装 python 下载地址:https://www.python.org/downloads/ 选择对应版本,常用版本有2.7.3.4 安装后,将安装 ...

  2. linux配置sftp简单过程

    首先疑惑是,  他需要的是上级的目录权限必须为root, 这点我有点不明白 环境是centos7.6 ssh 首先开整/etc/ssh/sshd_config # override default o ...

  3. oracle trunc函数用法

    转自:https://www.e-learn.cn/content/qita/699481 /**************日期********************/ select trunc(sy ...

  4. Python排序算法(六)——归并排序(MERGE-SORT)

    有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10800699.html 一.归并排序(MERG ...

  5. shell 数学运算

    数学运算之 expr expr操作符对照表 比较大小,只能对整数进行比较,需要加空格,linux 保留关键字要转义 num1=30 num2=50 expr $num1 \> $num2 查看上 ...

  6. 【charlse】charlse功能

    (一)主界面介绍 一.工具导航栏 Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏.视图如下图所示: 工具导航栏中提供了几种常用工具:  :清除捕获到的所有请求  :红点状态说明正在捕获请 ...

  7. GNU/Linux 介绍

    在了解Linux之前要先了解什么是GNU / GNU官方解释? GNU是一个自由软件操作系统.就是说,它尊重其使用者的自由.GNU操作系统包括GNU软件包(专门由GNU工程发布的程序)和由第三方发布的 ...

  8. 【转载】内联函数 —— C 中关键字 inline 用法解析

    转载地址:https://blog.csdn.net/zqixiao_09/article/details/50877383 一.什么是内联函数 在C语言中,如果一些函数被频繁调用,不断地有函数入栈, ...

  9. 【OF框架】使用OF.WinService项目,添加定时服务,进行创建启动停止删除服务操作

    准备 使用框架搭建完成项目,包含OF.WinService项目. 了解Window Service 和定时服务相关知识. 一.添加一个定时服务 第一步:了解项目结构 第二步:创建一个新的Job 第三步 ...

  10. redis windows安装与liunx安装

    windows安装redis 2.把安装包放在Linux文件系统下,利用WinSCP工具 3.解压缩 tar -zxf redis-4.0.2.tar.gz 4.切换到解压后的目录 cd redis- ...