springMVC_配置文件搭建基础环境


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_配置文件搭建基础环境的更多相关文章
- springMVC_注解方式搭建基础环境
---恢复内容开始--- 一.jar包环境,web配置文件和Spring-MVC配置文件的,相关的modelAndview 1.配置DispatcherServlet <servlet> ...
- (一)OpenStack---M版---双节点搭建---基础环境配置
↓↓↓↓↓↓↓↓视频已上线B站↓↓↓↓↓↓↓↓ >>>>>>传送门 配置如下 本次搭建采用2台4核4G的虚拟机,也可以用2台2核4G 主机名 配置 网络 Contr ...
- EF6 在原有数据库中使用 CodeFirst 总复习(一、搭建基础环境)
本来以为已经会了,可动手时发现许多问题还是模糊不清,正所谓眼高手低.只能重新查资料,再复习一遍. vs.net2013 ef6 mvc5 sqlserver2008 一.建立数据库 Bloggi ...
- 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台是 ...
- django 学习笔记(一)搭建基础环境
1.安装django 下载地址 https://github.com/django/django 解压后进入文件夹运行指令 >> python setup.py install 2.创建工 ...
- ASP.NET MVC4 微信公众号开发之网页授权(一):搭建基础环境
首先你得注册并认证一个个人或企业的微信公众号===服务号从而确保获得以下接口权限: 然后打开公众号设置里的功能设置里找到业务域名和网页授权域名分别填上你的域名(注:已备案的域名),如下图所示: 到这里 ...
- dos基础+环境搭建基础理论
dos基础 市面上两大操作系统 windows.*nix(unix.linux.mac.bsd(安全性比较高)) 后三种都属于unix的衍生版本 linux是为了兼容unix开发的,最后开放了源代码 ...
- Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建
[注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...
- CentOS6.5 PHP基础环境搭建 [个人整理-亲测可用]
** * CentOS6.5 搭建基础PHP环境(yum安装) * http://www.aiplaypc.com/160.html ** #安装需要的包,有依赖关系,自动帮你解决 yum ins ...
随机推荐
- 【转载】C#使用Split函数根据特定分隔符分割字符串
在C#程序开发过程中,很多时候可能需要将字符串根据特定的分割字符分割成字符或者List集合,例如根据逗号将字符串分割为数组,或者根据竖线将字符串分割成数组,C#中提供了Split()函数来快速将字符串 ...
- 【转载】 Asp.Net MVC网站提交富文本HTML标签内容抛出异常
今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ...
- 简单记录一次注入到shell
0x00 前言 帮朋友之前拿的一个站,有点久了没有完整截图,简单记录一下. 0x01 基础信息 操作系统:win 集成环境:phpstudy 端口开放:82,3306,3389 有phpmyadmin ...
- java的输入流中的两个坑
1.输入流的所有实例中的read()方法皆是阻塞的. 输入流只会在发生错误或者异常关闭的时候回返回-1,如果流中没有数据,不会返回-1而是一直阻塞. 2.BufferedReader的readLine ...
- [LeetCode] 671. 二叉树中第二小的节点 ☆(递归 合并)
描述 给定一个非空特殊的二叉树,每个节点都是正数,并且每个节点的子节点数量只能为 2 或 0.如果一个节点有两个子节点的话,那么这个节点的值不大于它的子节点的值. 给出这样的一个二叉树,你需要输出所有 ...
- k8s中的网络(较详细汇总)
目录 一.网络前提条件-网络模型 二.需要解决的网络问题 1.容器和容器之间的网络 2.pod与pod之间的网络 同一台node节点上pod和pod通信 不同node节点上pod和pod通信 3.po ...
- 2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划
2019-ACM-ICPC-南京区网络赛-D. Robots-DAG图上概率动态规划 [Problem Description] 有向无环图中,有个机器人从\(1\)号节点出发,每天等概率的走到下 ...
- Codeforces 750 E New Year and Old Subsequence
E. New Year and Old Subsequence 思路:线段树维护矩阵乘法. 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #p ...
- 【数组模拟-小顶堆的插入构造/遍历】PAT-L2-012.-关于堆的判断--数组模拟
L2-012. 关于堆的判断 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y ar ...
- php守护进程创建和简要分析
守护进程可 由系统启动脚本 /etc/rc.local crontab任务, 用户shell 方式运行 具体概念可参考c的 进程守护化基本步骤 1.创建子进程,终止父进程 (pcntl_fork,ex ...