ssm之springMVC总结

SpringMvc框架及SSM框架整合 SpringMvc框架及SSM框架整合 一、SpringMvc相关知识 1、Spring和SpringMvc的关系 ​ 1.1、Spring是IOC和AOP的容器框架,SpringMVC是基于Spring功能之上添加的Web框架,想用SpringMVC必须先依赖Spring。 ​ 1.2、SpringMVC是一个MVC模式的WEB开发框架;Spring是一个通用解决方案, 最大的用处就是通过Ioc... 阅读详情

springMVC简介

1、springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。
2、springmvc是一个基于mvc的web框架。
MVC:MVC是一个设计模式,C控制层,M模块层,V显示层这样的设计理念,而SSM框架里面SPRING MVC本身就是MVC框架,作用是帮助(某种意义上也可以理解为约束)我们要按照MVC这样的设计来开发WEB项目,而另外两个框架spring主要是用作IOC,AOF等其他的一些设计原则,至于mybatis是用来方便操作数据库的,所以他们都在MV里面,至于V指的是展示部分,一般是指JSP,freemarks这种其实,和SSM就没有太大的关系了
mvc在B\S系统下的应用:b/s系统下模型无法将数据填充到视图。

request请求
response响应
用户
C 控制器_controller\接口用户请求\响应
请求模型进行处理
视图渲染,将模型数据填充到request域
处理结果返回
C 控制器_controller\接口用户请求\响应
M 模型_pojo\action\service\dao
V 视图_view

3、pringmvc 表现层:方便前后端数据的传输。
4、SpringMVC相当于SSH框架中struts:Spring MVC 拥有控制器,作用跟Struts类似,接收外部请求,解析参数传给服务层。

SpringMVC 和 Struts2 对比

既然说到SSM框架中的SpringMVC相当于SSH框架中struts,那就顺便提一下SpringMVC 和 Struts2 的对比:
1、SpringMVC 的入口是 Servlet,而Struts2是Filter。
2、SpringMVC会稍微比Struts2快些,SpringMVC是基于方法设计的,而Struts2是基于类设计的,每次发一次请求都会实例一个Action。
3、SpringMVC使用更加简洁,开发效率比Struts2高。支持JSR303,处理ajax的请求更方便。
4、Struts2的OGNL表达式使页面的开发效率相比SpringMVC更高些。

springMVC的工作流程

springMVC的工作流程
注:
1、Handler也叫controller
2、HandlerInterceptor:拦截器
3、视图:jsp\freemaker\excel\pdf
4、前端控制器请求HandlerMapping查找Handler可以根据xml配置、注解进行查找
5、ModelAndView是springMVC框架的一个底层对象,包括model和view
6、前端控制器请求视图解析器解析视图,根据逻辑视图名解析成真正的视图(jsp)
7、视图渲染:将模型数据(ModelAndView对象中)填充到request域
组件:
1、前端控制器DispatcherServlet:接受请求、响应结果,相当于转发器,有了它,就减少了各模块间的耦合性
2、处理器映射器HandlerMapping:根据请求的url查找Handler
3、处理器适配器HandlerAdapter:按照特定规则(HandlerAdapter要求的规则)去执行Handler,注意编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确地去执行Handler
4、视图解析器View resolver:进行视图解析,根据逻辑视图名解析成真正的视图(View)
5、视图View是一个接口,实现类支持不同的View类型

springmvc配置文件

在此之前,需要导入spring所需jar包:

1、 Spring框架jar包:
为了简单,将spring-framework-3.2.0.RELEASE-with-docs.zip/dist/下的所有jar包拷贝到项目的WEB-INF/lib目录下(一定包括spring-webmvc-3.2.0.RELEASE.jar);
2、 Spring框架依赖的jar包:
需要添加Apache commons logging日志,此处使用的是commons-logging-1.1.1.jar;
需要添加jstl标签库支持,此处使用的是jstl-1.2.jar;

在我们的web.xml中添加如下配置:

1、配置前端控制器(classpath:dispatcherServlet-servlet.xml在classpath路径下)

  <!-- 配置前端控制器DispatcherServlet -->
  <servlet>
  	<servlet-name>dispatcherServlet</servlet-name>
  	<!-- 在spring-webmvc-3.2.0.RELEASE.jar包中找到DispatcherServlet复制路径 -->
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- contextConfigLocation配置springmvc加载的配置文件(包括处理器映射器、适配器等等)
  	如果不配置contextConfigLocation,默认加载/WEB-INF/servlet名称-servlet.xml-->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:dispatcherServlet-servlet.xml</param-value>
  	</init-param>	
 	<!-- 在WEB容器启动时就实例化DispatcherServlet,而不是等到该servlet被选择时。正数数字越小,优先级越高。-->
  	<load-on-startup>1</load-on-startup>
  	
  </servlet>
  <servlet-mapping>
  	<servlet-name>dispatcherServlet</servlet-name>
  	<!--
	第一种:*/.action,访问以.action结尾由Dispatcherervlet进行解析
	第二种:/,所有访问的地址都由Dispatcherervlet进行解析,对于静态文件的解析需要配置不让Dispatcherervlet进行解析
	第三种:/*,这样配置不对,使用这种配置,最终要转发到一个jsp页面时,仍然会由Dispatcherervlet解析jsp地址,不能根据jsp页面找到Handler,会报错
  	-->
  	<url-pattern>/</url-pattern>
  </servlet-mapping>

注意:如果是用maven构建的项目,那么src目录是:src/main/resources

如果用到REST风格URL,还需在web.xml中配置HidddenHttpMethodFilter

<!-- 配置HiddenHttpMethodFilter 作用可以把post请求转为delete或者put请求 -->
  <filter>
  	<filter-name>HiddenHttpMethodFilter</filter-name>
  	<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
  </filter>
  <filter-mapping>
  	<filter-name>HiddenHttpMethodFilter</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>

在我们的dispatcherServlet-servlet.xml中添加如下配置:

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
		
	<!-- 配置Handler -->
	<bean name="/queryItems.action" class="com.jacket.ssm.controller.ItemsController"/>
	
	<!--处理器映射器-->
	<!-- 根据bean的name作为url进行查找Handler 将action的url配置在bean的name中 -->
	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
	
	<!--处理器适配器:所有的处理器适配器都实现HandlerAdapter-->
	<bean	class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> 

	<!-- 视图解析器 解析jsp视图,默认使用jstl标签-->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
</beans>

总结:
处理器适配器:
通过查看SimpleControllerHandlerAdapter源代码,

public class SimpleControllerHandlerAdapter implements HandlerAdapter {
	public boolean supports(Object handler) {
		return (handler instanceof Controller);
	}
	...
}

此适配器能执行实现Controller接口的Handler,查看Controller接口源代码,

public interface Controller {
	/**
	 * Process the request and return a ModelAndView object which the DispatcherServlet
	 * will render. A <code>null</code> return value is not an error: It indicates that
	 * this object completed request processing itself, thus there is no ModelAndView
	 * to render.
	 * @param request current HTTP request
	 * @param response current HTTP response
	 * @return a ModelAndView to render, or <code>null</code> if handled directly
	 * @throws Exception in case of errors
	 */
	ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;
}

Controller接口返回一个ModelAndView对象。

编写Handler

需要实现controller接口,才能由org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter适配器执行:

package com.jacket.ssm.controller;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.jacket.ssm.po.Items;

public class ItemsController implements Controller {

	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// 调用service查找数据库,查询商品列表,这里使用静态数据模拟
		List<Items> itemsList = new ArrayList<Items>();
		//向list填充静态数据
		Items items_1 = new Items();
		items_1.setName("联想笔记本");
		items_1.setPrice(6000f);
		items_1.setDetail("ThinkPad T430 联想笔记本电脑!");
		
		Items items_2 = new Items();
		items_2.setName("苹果手机");
		items_2.setPrice(5000f);
		items_2.setDetail("iphone6苹果手机!");
		
		itemsList.add(items_1);
		itemsList.add(items_2);
		
		//创建modelAndView准备填充数据、设置视图
		ModelAndView modelAndView = new ModelAndView();
		
		//填充数据,相当于request的setAttribut,在jsp页面中通过itemsList获取数据
		modelAndView.addObject("itemsList", itemsList);
		//指定视图
		modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
		
		return modelAndView;
	}
}

下面是我自己利用springMVC做的项目的截图。

Rijndael密码算法 一 什么是Rijndael Rijndael是由比利时密码学家设计的分组密码算法,于2000年被选为新一代的标准密码算法——AES。今后会有越来越多的密码软件支持这种算法。 Rijndael的分组长度和密钥长度可以分别以32比特为单位在128比特和256比特的范围内进行选择。不过在AES的规格中,分组长度固定为128比特,密钥长度只有128、192和256比特三种。 二 Rijndael的加... 阅读详情

相关推荐

MIT Mini Cheetah--仿真流程

MIT Mini Cheetah–仿真 摘要 由于官方提供代码中,控制仿真环境中的猎豹机器人运动需要遥控器来控制。官方默认推荐使用logitech Gamepad F310游戏手柄:We use the Logitech F310 controller. There’s a switch in the back, which should be in the “X” position. The controller needs to reconnected if you change the switch

Galaxy_Robot的博客 5916

SSM,三层结构,MVC三者的说明及关系(很全面)

三层架构 三层架构是指:视图层view(表现层),服务层service(业务逻辑层),持久层Dao(数据访问层), 它们的功能是: 1.view层: 用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。主要作用是界面展示,接收请求,分发请求。 2.service层:实现业务的主要逻辑,是系统架构中体现核心价值的部分。将一个业务中所有的操作封装成一个方法,同时保证方法中所有的数据库更新操作,即保证同时成功或同时失败。避免部分成功部分失败引起的数据混乱操作。 3.Dao层:也称为是持久层,其功

Tranne的博客 8万+

基于强化学习框架的交易策略学习过程

每个状态s∈S 是一个由六个微观结构特征构成的向量,这些特征反映了当前市场的订单簿状态和近期交易行为。

xu624735206的博客 1110

MVC架构和SSM框架的个人理解

MVC架构和SSM框架的个人理解前言一、原生JavaWeb对应MVC架构二、SSM框架对应MVC架构第一块内容(MyBatis):第二块内容(Spring):第三块内容(SpringMVC):总结 前言 学习完SSM框架之后, 对以前JavaWeb的原生方式, 以及对应的MVC架构有了新的理解, 特此总结. 这一篇只谈架构, 不谈技术细节 一、原生JavaWeb对应MVC架构 先谈一下MVC 什么是MVC ? : MVC全名是Model View Controller,是模型(model)-视图(vie

大吉的博客 1万+

[Arcgis插件分享]--在线地图、地图配色

插件介绍:MapOnline在线地图插件是一套由北京茗禾科技有限公司研发的基于ArcGIS的插件工具,用户通过注册“数据禾”网站,即可使用MapOnline实现各种在线地图资源的集成加载,以及网站共享资源的免费下载。包括:谷歌地图、谷歌地球(无偏)、高德地图、天地图(无偏)、搜搜地图、必应地图(无偏)、OSM地图(无偏)、Esri影像(无偏),以及自定义切片的加载。⑤在Arcmap操作窗口上方的菜单栏右键,调用「MapOnlinev1.2.4」②双击安装文件夹内的「MapOnline.esriAddIn」

weixin_59101151的博客 5762

【Lane】 Ultra-Fast-Lane-Detection 复现

引言 车道线检测源码复现以及训练自己的数据集 1 环境搭建 conda create -n lane python=3.7 conda activate lane # 激活环境 conda install pytorch torchvision cudatoolkit=10.1 -c pytorch pip install -r requirements.txt 2 下载项目源码 若在服务器上可以用指令下载,否则直接在网址中下载 git clone https://github.com/cfzd/U

qq_44703886的博客 2万+

SpringMvc讲解+Ssm整合

1、回顾MVC 1.1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向偶合。 MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。 **Model(模型):**数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据

qq_53438100的博客 1136

高等数学第五章---定积分(§5.3定积分的计算方法)

这篇博客详细讲解定积分的计算方法,包括直接法、凑微分法、变量代换法和分部积分法。通过典型例题演示如何运用这些技巧计算定积分,特别强调换元必换限的原则和奇偶函数的简化处理。内容涵盖代数变形、三角代换、分段函数积分等常见题型,并附有详细的解题步骤和常见错误分析。适合微积分学习者系统掌握定积分计算技巧,提升解题效率。文中还包含积分等式证明和变限积分函数求导等进阶内容,帮助读者深入理解定积分的应用。

2302_77045867的博客 4334

MVC模式与SSM框架的理解

MVC模式与SSM框架的理解 文章目录MVC模式与SSM框架的理解一、MVC模式是什么?二、SSM框架是什么?三、项目包结构 一、MVC模式是什么? M是指业务模型(model 模型)----编写程序应有的功能,数据管理和数据库设计 V是指用户界面(view 视图层)----界面设计人员进行界面设计。 C则是控制器(controller 控制)----控制器负责转发请求,对请求进行处理。 二、SSM框架是什么? SSM是Spring+Spring MVC+Mybatis的缩写,主流的Java EE企业级

weixin_45048564的博客 3719

SAP-ABAP:SAP中如何查看系统表之间的关联关系?

在业务逻辑开发或者ALV开发过程中,我们通常要从系统中找出几个标准表之间的关联关系,有的是head与item,通过外键进行关联的关系。那么怎么去找到呢?以上就是具体如何产看系统表之间的关联关系的步骤,对于不同代码的业务顾问,也是必须要掌握的。

LinkStar的博客 2430

RK3588开发笔记-Buildroot编译host-nodejs报错解决ModuleNotFoundError: No module named ‘_bz2‘

在RK3588的开发过程中,使用Buildroot进行系统的构建和编译是一个常见的选择。然而,在编译host-nodejs的过程中,有时会遇到报错信息提示。这个错误通常是由于Python环境中缺少相应的模块导致的。以下将记录我解决这个问题的过程。。在RK3588的开发过程中,使用Buildroot编译host-nodejs时遇到的错误,通常是由于缺少相应的Python模块导致的。通过配置buildroot pythong bzip2开发库并重新编译,可以解决这个问题。

flypig has a dream! 898

MVC和SSM对应关系

1、MVC和SSM解释 名称 简介 MVC 三层设计模式(Model-View-Controller),是一种软件设计架构模式 SSM javaWeb框架(springmvc-spring-mybatis),是MVC架构模式的具体实现 2、MVC和SSM对应关系 下面是我个人理解的mvc和ssm对应关系,如有不当之处,希望大佬更正。 MVC层级 作用 SSM对应 实现包 理解 module 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化

清风微凉亦暖心 8177

【以太网硬件六】1000base-T物理层编码究竟是怎么编的?

详述1000base-T物理层4D-PAM5的编码过程

highman110的博客 5324

狂神说SpringMVC05:整合SSM框架

狂神说SpringMVC系列连载课程,通俗易懂,基于Spring5版本(视频同步),欢迎各位狂粉转发关注学习。未经作者授权,禁止转载整合SSM框架在上一节中,我们了解了SpringMVC...

狂神说 4万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Spring,SpringMVC,ssm的区别

概念: Spring Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。 SpringMVC Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。 1、MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数

qq_43649799的博客 8507

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

构建SSM框架项目:SpringMVC篇

SpringMVC是Spring框架的一个模块,它实现了MVC(Model-View-Controller)设计模式,用于简化Web应用程序的开发。它通过将请求映射到控制器,并将控制器的输出渲染到视图,从而实现了请求的分发和响应的生成。SpringMVC作为SSM框架的核心组件之一,提供了强大的Web开发支持。通过本篇博客,我们学习了如何创建一个SSM项目,并了解了SpringMVC的关键组件和知识点。

2301_77757537的博客 1781

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

SSM之 整合SpringMVC

SSM整合分两步走,第一步请看 Mybatis 和Spring的整合,当前为第二步。

CAUC_lin的博客 333

SpringMVC框架笔记 SSM整合

SpringMVC SpringMVC官方文档:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc ssm : mybatis + Spring + SpringMVC MVC三层架构 JavaSE :认真学习,老师带,入门快 JavaWeb:认真学习,老师带,入门快 SSM框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力 SpringMVC + Vue + SpringBoot +

SwaeLeeUknow的博客 2462

[SSM]SpringMVC详解

SpringMVC优点 基于MVC架构 基于MVC架构,功能分工明确,解耦合。 容易理解,上手快,使用简单 SpringMVC是轻量级的,jar很小。不依赖特定的接口和类。 作为Spring框架的一部分,能够使用Spring的IOC和AOP 方便整合Strtus、MyBatis、Hiberate、JPA等其它框架。 SpringMVC强化注解的使用 在Controller、Service、Dao都可以使用注解,方便灵活。使用@Controller创建处理器对象,@Service创建业务对象,@

m0_71229255的博客 538

SpringMVC以及SSM整合

本人才疏学浅,如有错误欢迎批评!转载请注明出处:https://www.cnblogs.com/lee-yangyaozi/p/11226145.html SpringMVC概述 Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是...

ynll810282131的博客 183

SSM之SpringMVC和Mybatis

SSM之SpringMVC和Mybatis

zyy030616的博客 431

SpringMVC以及SSM整合【7】

SpringMVC以及SSM整合【7】

qq_45740503的博客 890

SSM | SpringMVC

SSM | SpringMVC1.回顾MVC1.1什么是MVC1.2 Model1时代1.3 Model2时代1.4 1.回顾MVC 1.1什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。 是将业务逻辑、数据、显示分离的方法来组织代码。 MVC主要作用是降低了视图与业务逻辑间的双向偶合。 MVC不是一种设计模式,MVC是一种架...

weixin_42054526的博客 1109

SpringMVC_SSM整合

SpringMVC整合思路第一步:先搭建整合的环境;第二步:搭建Spring环境;第三步:搭建SpringMVC环境;第四步:使用Spring整合SpringMVC框架;第五步:搭建MyBatis环境;第六步:使用Spring整合MyBatis框架;验证SSM整合 针对之前的学习,进行SSM整合,然后结合做过的项目,熟悉整个过程。 整合思路 选择XML + 注解的方式进行SSM框架整合 第一步:...

Running_lemon的博客 476

ssm整合之编写SpringMVC框架

ssm整合之编写SpringMVC框架 1.在webapp/WEB-INF/web.xml配置的代码如下: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Applicat

weixin_40055163的博客 165

【SpringMVC】概述 SSM:Spring + SpringMVC + Mybats

MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

qq_53433382的博客 1505
下一篇: ssm之spring框架知识点总结
那个写Java的小林
博客等级 码龄9年 37粉丝 70原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值