Spring MVC 学习笔记
使用Servlet做控制器存在的问题:
同一个Servlet中处理多个请求比较麻烦 BankServelt?method=insert BankServelt?method=get
请求参数的获取和类型转换需要手工编码
响应jsp页面路径在Servlet中写死
一、概述
spring mvc是spring框架的一个模块,springmvc与spring无需通过中间整合层进行整合
spring mvc是一个基于MVC设计模式的框架
是目前最主流的MVC框架之一(struts2)
spring 3.0之后,全面的超越了struts2
二、使用
导入jar包
< dependency>
< groupId> org.springframework groupId>
< artifactId> spring-webmvc artifactId>
< version> 4.3.8.RELEASE version>
dependency>
< dependency>
< groupId> org.springframework groupId>
< artifactId> spring-context artifactId>
< version> 4.3.8.RELEASE version>
dependency>
SpringMVC提供了一个DispatcherServlet,把用户的请求转给SpringMVC进行处理
< servlet>
< servlet-name> DispatcherServlet servlet-name>
< servlet-class>
org.springframework.web.servlet.DispatcherServlet
servlet-class>
< init-param>
< param-name> contextConfigLocation param-name>
< param-value> classpath:springmvc.xml param-value>
init-param>
servlet>
< servlet-mapping>
< servlet-name> DispatcherServlet servlet-name>
< url-pattern> *.action url-pattern>
servlet-mapping>
springmvc.xml(三大件)
1)组件扫描
< context: component-scan base-package = " com.neu.controller" > context: component-scan>
2)启用springmvc注解
< mvc: annotation-driven> mvc: annotation-driven>
3)配置视图解析器
< bean class = " org.springframework.web.servlet.view.InternalResourceViewResolver" >
< property name = " prefix" value = " /WEB-INF/jsp/" > property>
< property name = " suffix" value = " .jsp" > property>
bean>
定义控制器 1)添加一个普通的java类,在其上添加@Controller注解,该注解实现了@Component注解的功能,并且可以在添加有@Controller注解的类中,搜索@RequestMapping注解的方法 2)在控制器类中添加处理请求的方法,并且在该方法上添加@RequestMapping注解,该注解负责把用户输入的url映射到当前方法上 3)@RequestMapper a)既可以添加到类上,也可以添加到方法上 b)添加到类定义处,提供初步的请求映射信息,路径相对于web应用程序根目录 c)添加到方法处,提供进一步的细分映射信息,相对于类定义处的url,若类定义处没有标注@RequesMapping,则路径url相对于web应用根目录 d)method:表示能处理的请求方法 @RequestMapping(value="/login",method= {RequestMethod.POST,RequestMethod.GET}) e)value:指定请求的url f)params:指定请求中必须包含某些请求参数或参数值 @RequestMapping(value="/login",method= {RequestMethod.POST,RequestMethod.GET},params= {“username=admin”,“password=123”}) 4)请求参数的绑定:把请求参数的key/value,绑定到控制器方法的形参上,默认情况下,要求请求参数名与形参名相同即可自动绑定 5)@RequestParam:映射请求参数 a)value:请求参数名 b)required:请求参数是否必须提供,默认值为true c)defaultValue:请求参数默认值,请求参数为空的时候,使用默认值 6)方法的返回值为字符串 a)返回逻辑视图名:需要配置视图解析器,添加前缀和后缀 实际视图名=前缀+逻辑视图名+后缀 b)重定向:redirect:url 重定向时候,视图解析器不起作用 c)请求转发:forward:url(请求转发到另一个处理器方法) 7)向响应结果添加数据:在形参中添加Model对象,添加到Model中的数据最终会被添加到request中model.addAttribute(“username”, username);
处理器方法形参 1)可以为pojo:只要请求参数的名与pojo的属性名相同就会自动绑定 2)复杂类型pojo:pojo中的某个属性为另一个实体 请求参数:?group.name=group1 3)数组(数组成员为基本数据类型、或包装类、字符串) 4)pojo的属性为集合:
请求参数:
?list[0].username=tom&list[0].password=123&list[1].username=marry&list[1].password=345
实体类:
class Group {
private List< User> list;
}
处理器方法:
String login ( Group group) {
}
5)HttpServletRequest 6)HttpSession 7)HttpServletResponse
处理器方法的返回值类型: 1)String 2)void 3)ModelAndView
添加spring的编码过滤器(处理post请求编码问题)
< filter>
< filter-name> CharacterEncodingFilter filter-name>
< filter-class>
org.springframework.web.filter.CharacterEncodingFilter
filter-class>
< init-param>
< param-name> encoding param-name>
< param-value> utf-8 param-value>
init-param>
filter>
< filter-mapping>
< filter-name> CharacterEncodingFilter filter-name>
< url-pattern> /* url-pattern>
filter-mapping>
修改tomcat插件中uriEncoding属性(处理get请求编码问题)
< plugin>
< groupId> org.apache.tomcat.maven groupId>
< artifactId> tomcat7-maven-plugin artifactId>
< version> 2.2 version>
< configuration>
< path> / path>
< port> 8089 port>
< uriEncoding> utf-8 uriEncoding>
configuration>
plugin>
日期格式 1)默认:yyyy/MM/dd 2)修改默认日期格式:在实体类的日期属性上添加@DataTimeFormat(pattern=“yyyy-MM-dd”)
@DateTimeFormat ( pattern= "yyyy-MM-dd" )
private Date birthday;
3)常见错误:400:表示数据格式错误
三、文件上传
导入jar包
< dependency>
< groupId> commons-fileupload groupId>
< artifactId> commons-fileupload artifactId>
< version> 1.3.2 version>
dependency>
配置附件解析器
< bean id = " multipartResolver" class = " org.springframework.web.multipart.commons.CommonsMultipartResolver" >
< property name = " maxUploadSize" value = " 5242880" > property>
< property name = " defaultEncoding" value = " utf-8" > property>
bean>
编写控制器
@Controller
public class FileUploadController {
@RequestMapping ( "file" )
public void upload ( MultipartFile file, HttpServletRequest request) throws IllegalStateException, IOException {
String path = request. getServletContext ( ) . getRealPath ( "/upload" ) ;
if ( ! file. isEmpty ( ) ) {
File f = new File ( path, file. getOriginalFilename ( ) ) ;
file. transferTo ( f) ;
}
}
}
编写jsp
< form action = " ${ pageContext.request.contextPath }/file.action" method = " post" enctype = " multipart/form-data" >
文件:< input type = " file" name = " file" > < input type = " submit" value = " 提交" >
form>
多文件上传:
@Controller
public class FileUploadController {
@RequestMapping ( "file" )
public void upload ( @RequestParam ( "files" ) MultipartFile[ ] files, HttpServletRequest request) throws IllegalStateException, IOException {
String path = request. getServletContext ( ) . getRealPath ( "/upload" ) ;
for ( MultipartFile file : files) {
if ( ! file. isEmpty ( ) ) {
File f = new File ( path, file. getOriginalFilename ( ) ) ;
file. transferTo ( f) ;
}
}
}
}
多文件上传:jsp
< form action = " ${ pageContext.request.contextPath }/file.action" method = " post" enctype = " multipart/form-data" >
文件:< input type = " file" name = " files" > < br>
文件:< input type = " file" name = " files" > < br>
文件:< input type = " file" name = " files" > < br>
< input type = " submit" value = " 提交" >
form>
四、返回json对象
在处理器方法上添加@ResponseBody,该注解能够将处理器方法返回的对象经过适当的转换,把数据写入到Response对象的Body数据区
@RequestMapping ( "getByJob" )
@ResponseBody
public List< Emp> getByJob ( String job) {
List< Emp> list = empService. getByJob ( job) ;
return list;
}
导入jar包
< dependency>
< groupId> com.fasterxml.jackson.core groupId>
< artifactId> jackson-databind artifactId>
< version> 2.8.8.1 version>
dependency>
jsp
$ ( function ( ) {
$ ( ":button" ) . click ( function ( ) {
var url = "${ pageContext.request.contextPath }/emp/getByJob.action" ;
var data1 = $ ( "[name=job]" ) . serialize ( ) ;
$. post ( url, data1, function ( data) {
for ( i = 0 ; i < data. length; i++ ) {
var emp = data[ i] ;
var tr = $ ( "") . appendTo ( "table" ) ;
$ ( " ") . text ( emp. empno) . appendTo ( tr) ;
$ ( " ") . text ( emp. ename) . appendTo ( tr) ;
$ ( " ") . text ( emp. job) . appendTo ( tr) ;
$ ( " ") . text ( emp. hiredate) . appendTo ( tr) ;
$ ( " ") . text ( emp. mgr) . appendTo ( tr) ;
$ ( " ") . text ( emp. sal) . appendTo ( tr) ;
$ ( " ") . text ( emp. comm) . appendTo ( tr) ;
$ ( " ") . text ( emp. dept. dname) . appendTo ( tr) ;
}
} ) ;
} ) ;
} ) ;
< / script>
五、拦截器
拦截器类似于Serlet中的过滤器(Filter),用于对处理器进行预处理和后处理
创建拦截器 1)实现HandlerInterceptor接口
public class LoginCheckInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle ( HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
HttpSession session = request. getSession ( ) ;
Object username = session. getAttribute ( "username" ) ;
if ( username == null) {
request. getRequestDispatcher ( "/login.jsp" ) . forward ( request, response) ;
return false ;
}
return true ;
}
@Override
public void postHandle ( HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
}
@Override
public void afterCompletion ( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
}
}
配置拦截器
< mvc: interceptors>
< mvc: interceptor>
< mvc: mapping path = " /**" />
< mvc: exclude-mapping path = " /login.action" />
< bean class = " com.neu.controller.LoginCheckInterceptor" > bean>
mvc: interceptor>
mvc: interceptors>
你可能感兴趣的:(其他框架,SpringMVC从入门到精通)
C++菜鸟教程 - 从入门到精通 第二节
DreamByte
c++
一.上节课的补充(数据类型)1.前言继上节课,我们主要讲解了输入,输出和运算符,我们现在来补充一下数据类型的知识上节课遗漏了这个知识点,非常的抱歉顺便说一下,博主要上高中了,更新会慢,2-4周更新一次对了,正好赶上中秋节,小编跟大家说一句:中秋节快乐!2.int类型上节课,我们其实只用了int类型int类型,是整数类型,它们存贮的是整数,不能存小数(浮点数)定义变量的方式很简单inta;//定义一
Spring MVC 全面指南:从入门到精通的详细解析
一杯梅子酱
技术栈学习 spring mvc java
引言:SpringMVC,作为Spring框架的一个重要模块,为构建Web应用提供了强大的功能和灵活性。无论是初学者还是有一定经验的开发者,掌握SpringMVC都将显著提升你的Web开发技能。本文旨在为初学者提供一个全面且易于理解的学习路径,通过详细的知识点分析和实际案例,帮助你快速上手SpringMVC,让学习过程既深刻又高效。一、SpringMVC简介1.1什么是SpringMVC?Spri
mysql学习教程,从入门到精通,TOP 和MySQL LIMIT 子句(15)
知识分享小能手
大数据 数据库 MySQL mysql 学习 oracle 数据库 开发语言 adb 大数据
1、TOP和MySQLLIMIT子句内容在SQL中,不同的数据库系统对于限制查询结果的数量有不同的实现方式。TOP关键字主要用于SQLServer和Access数据库中,而LIMIT子句则主要用于MySQL、PostgreSQL(通过LIMIT/OFFSET语法)、SQLite等数据库中。下面将分别详细介绍这两个功能的语法、语句以及案例。1.1、TOP子句(SQLServer和Access)1.1
SpringBoot和SpringMVC是什么关系?SpringBoot替代SpringMVC了吗?
瑞金彭于晏
spring boot 后端 java MVC spring 数据库
SpringBoot和SpringMVC都是SpringFramework生态系统中的一部分,但它们各自扮演着不同的角色和提供不同的功能集。理解它们之间的关系,首先需要了解SpringFramework本身。SpringFrameworkSpringFramework是一个全面的、开源的应用程序开发框架,它提供了广泛的功能来支持企业应用开发的几乎所有方面。SpringFramework的核心特性之
spring mvc @RequestBody String类型参数
zoyation
spring-mvc spring mvc
通过如下配置:text/html;charset=UTF-8application/json;charset=UTF-8在springmvc的Controller层使用@RequestBody接收Content-Type为application/json的数据时,默认支持Map方式和对象方式参数@RequestMapping(value="/{code}/saveUser",method=Requ
基于JavaWeb开发的Java+SpringMvc+vue+element实现上海汽车博物馆平台
网顺技术团队
成品程序项目 java vue.js 汽车 课程设计 spring boot
基于JavaWeb开发的Java+SpringMvc+vue+element实现上海汽车博物馆平台作者主页网顺技术团队欢迎点赞收藏⭐留言文末获取源码联系方式查看下方微信号获取联系方式承接各种定制系统精彩系列推荐精彩专栏推荐订阅不然下次找不到哟Java毕设项目精品实战案例《1000套》感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人文章目录基
【免费】springboot项目申报管理系统|毕业设计|Javaweb项目
计算机学姐来啦
springboot ssm java spring boot 课程设计 后端 毕设 毕业设计 java-ee
收藏点赞不迷路关注作者有好处编号:springboot375springboot项目申报管理系统开发语言:Java数据库:MySQL技术:Spring+SpringMVC+MyBatis工具:IDEA/Ecilpse、Navicat、Maven1.万字文档展示(部分)2.系统图片展示第5章系统详细设计5.1管理员功能模块的实现5.1.1项目列表如图5.1显示的就是项目列表页面,此页面提供给管理员的
shell 笔记_s1=abc,s2=def,[-z‘‘‘]&;&;echo‘$s1‘ echo‘$s2‘的输出是什么
2024云技术
运维 linux 面试
最全的Linux教程,Linux从入门到精通======================linux从入门到精通(第2版)Linux系统移植Linux驱动开发入门与实战LINUX系统移植第2版Linux开源网络全栈详解从DPDK到OpenFlow第一份《Linux从入门到精通》466页====================内容简介====本书是获得了很多读者好评的Linux经典畅销书**《Linu
python毕业设计作品:python闲置物品二手交易平台系统设计与实现毕业设计源代码(Django框架)
黄菊华老师
毕设资料 python二手交易平台系统
博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、PPT、论文模版等项目都录了发布和功能操作演示视频;项目的界面和功能都可以定制,包安装运行!!!如果需要联系我,可以在CSD
Java 后端程序员必须要懂的几种框架分享
Java烟雨
java mvc 开发语言
MVC框架MVC模式是软件工程中的一种软件架构模式,可以把软件系统分为三个基本部分:模型(Model),编写程序应有的功能(实现算法等等)、进行数据管理和数据库设计,。视图(View),界面设计人员进行图形界面设计。控制器(Controller),负责转发请求,对请求进行处理。比较知名的MVC框架有SpringMVC,是一种基于请求驱动类型的轻量级Web框架,目的是帮助我们后端程序员简化开发。我个
第 12 章 Spring MVC 扩展和 SSM 框架整合
HUNAG-DA-PAO
spring mvc java
SpringMVC框架处理JSON数据SON格式数据在现阶段的Web项目开发中扮演着非常重要的角色。在前端页面和后台交互的过程中,需要一种格式清晰、高效且两端都可以轻松使用的数据格式做交互的媒介,JSON正可以满足这一需求。JSON数据的传递处理在Java中处理JSON数据的传递通常涉及到序列化和反序列化操作。序列化是将Java对象转换为JSON格式的字符串,以便可以将其存储或通过网络传输;反序列
springmvc 前后端日期格式的转换
owlets_ju
java java
1.后台Date类型返回前端String类型@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8")它的作用是,出参时,自动把Date型对象数据转化成格式化后的字符串输出:yyyy-MM-ddHH:mm:ss示例:@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss",timezone="GMT+8")priva
第 2-2 课:深入探究底层原理,应用更加得心应手
Java大联盟
案例上手 Spring 全家桶 Spring Spring Boot Spring Cloud Spring MVC Spring Spring Boot Spring
前言上一讲我们学习了SpringMVC框架的使用,为了更好地理解这个框架,本讲来仿写一个SpringMVC框架,用到的技术比较简单,只需要XML解析+反射就可以完成,不需要JDK动态代理。自己手写框架的前提是必须理解框架的底层原理和运行机制,因此我们还是先来回顾一下SpringMVC的实现原理。SpringMVC实现原理SpringMVC的核心组件和工作流程的内容具体可以参考第2-1讲的内容,通过
【SpringMVC】五、Json数据交互 Json乱码处理 Jackson Fastjson【狂神篇】
Y1567409
程序员 json 交互
简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在JavaScript语言中,一切都是对象。因此,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。要求和语法格式:对象表示为键值对,数据由逗号分隔花括号保存对象方括号保存数组JSON键值对是用来保存JavaScript对象的一种方
深度长文解析SpringWebFlux响应式框架15个核心组件源码
快乐非自愿
java spring
SpringWebFlux介绍SpringWebFlux是SpringFramework5.0版本引入的一个响应式Web框架,它与SpringMVC并存,提供了一种全新的编程范式,支持异步非阻塞的Web应用开发。WebFlux完全基于响应式编程模型,支持ReactiveStreams规范,可以在诸如Netty、Undertow以及Servlet3.1+容器上运行。WebFlux的核心控制器是Dis
目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】工业相机
格图素书
数码相机 目标检测 人工智能
目录知识储备深度相机1TOF2双目视觉3结构光4智能门锁应用5手机应用算法原理相机的成像与标定模型相机标定的实施·标定过程的算法实施相机标定的扩展CCD工业相机、镜头倍率及相关参数计算方法知识储备深度相机1TOF1.1Kinectv2Kinectv2是Microsoft在2014年发售的,如图1-1所示。相比于Kinectv1在硬件和软件上作出了很大的进化,且在深度测量的系统和非系统误差方面表现出
基于java+ssm+vue毕业设计源码合集(1-100)源码+文档+调试+讲解
小程序设计
java java 课程设计 vue.js
技术栈介绍:SSM(Spring、SpringMVC、MyBatis)框架搭配Vue前端框架是当前较为流行的项目开发技术栈。以下是详细的技術列表:1.后端技术:-Spring:一个开源的Java平台,提供了用于构建企业级应用程序的全面解决方案。-SpringMVC:Spring框架的一个子项目,用于构建Web应用程序,提供了处理请求、数据验证、视图解析等功能的模块。-MyBatis:一个优秀的持久
《Spring实战》读书笔记-第5章 构建Spring Web应用程序
2401_86367086
面试辅导大厂内推 spring 前端 java
5.1SpringMVC起步SpringMVC框架主要包括请求调度Servlet、处理器映射(handlermapping)、控制器以及视图解析器(viewresolver)这些组件。跟踪SpringMVC的请求Web请求从离开浏览器开始到获取响应返回,它会经历好多站,每站都会留下一些信息同时带上其他信息。一路上请求会将信息带到很多站点,并产生期望的结果请求带着URL以及其他信息离开浏览器后,第一
计算机毕业设计 SSM高校网上报名系统 网上报名数据系统 会计网上报名系统Java
计算机程序老哥
作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SSM(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆前端页面功能:首页、级别专业、系统论坛、系统公告、个人中心、后台管理、在线客服首页级别专业系统公告
Spring MVC 执行流程详解
胡耀超
Spring java面试常见问题 spring mvc java Spring MVC
SpringMVC是一个典型的基于MVC设计模式的框架,它用于开发JavaWeb应用程序。在SpringMVC中,每个请求都要经历一系列的步骤,从客户端请求到服务器返回响应。下面的执行流程图很好地描述了SpringMVC的执行流程,从请求发起到最后返回数据。接下来,我将全面、深入地讲解SpringMVC的执行流程。SpringMVC执行流程图:+---------++---------------
Vue3+TypeScript从入门到精通系列之:类多态
快乐骑行^_^
日常分享专栏 typescript Vue3 类多态
Vue3+TypeScript从入门到精通系列之:类多态一、TypeScript类多态代码二、TypeScript的类多态转化为JS代码三、查看js输出一、TypeScript类多态代码(()=>{//多态:父类型的引用指向了子类型的对象,不同类型的对象针对相同的方法,产生了不同的行为//定义一个父类classAnimal{name:stringconstructor(name:string){t
Foundation框架详细解析 (二) —— Foundation的结构组成和它在iOS系统中的地位和位置(一)
刀客传奇
版本记录版本号时间V1.02018.05.22前言前面写了那么多篇包括一些具体功能的实现,也包含了关于架构方面的一些想法,这一篇回归一下iOS系统框架中的一个基本框架Foundation,可以说这个框架是所有其他框架的基础,它里面定义了数据类型等相关的信息。接下来几篇我们就一起看一下该基本框架Foundation的相关内容。感兴趣的可以参考下面几篇。1.Foundation框架详细解析(一)——基
Autosar MCAL从入门到精通系列讲解--总目录
常学常思
Autosar -- MCAL从入门到精通 嵌入式硬件 mcu 单片机 Autosar
前言欢迎大家一起来学习Autosar,作为一个小白,在最开始的时候也是一脸茫然,不知道如何去学习,如何下手。在这里,我将记录我所有Autosar学习的过程,问题点,以及分享我的代码供大家参考。最终能让大家快速上手。Mcal:可以去官网下载一、EB1.EBtresos创建工程2.EB生成代码编译---makefile二、TricoreMcal实战系列(EB)这里的博客之前都是用S32DS来配置的,在
【SpringMVC篇】——我们为什么学习SpringMVC?
南斋孤鹤
SSM框架 Spring servlet 学习
我觉得在学一门技术之前,总要明白为什么而学?学习了这门技术能解决什么问题?或者说他是为了解决什么问题而诞生的?学了他能干什么?目录我觉得在学一门技术之前,总要明白为什么而学?学习了这门技术能解决什么问题?或者说他是为了解决什么问题而诞生的?学了他能干什么?为什么学习SpringMVC?Servlet作用具体来说,Servlet技术的主要作用如下:什么是springmvc?SpringMVC的出现解
SpringMVC的架构有什么优势?——视图与模型(二)
不会编程的小孩子
架构
#SpringMVC的架构有什么优势?——视图与模型(二)前言关键字:机器学习人工智能AIchatGPT学习实现使用搭建深度python事件远程dockermysql安全技术部署技术自动化代码视图(View)视图是展示结果的组件,它们负责渲染模型数据并生成HTML输出。SpringMVC支持多种视图技术,包括JSP、Thymeleaf等。视图(View)是SpringMVC中渲染并呈现结果的组件,
python从入门到精通:函数
人间无解
python 开发语言 数据结构 数据库 mysql
目录1、函数介绍2、函数的定义3、函数的传入参数4、函数的返回值5、函数说明文档6、函数的嵌套调用7、变量的作用域1、函数介绍函数是组织好的,可重复使用的,用来实现特定功能的代码段。name="zhangsan";length=len(name);print(length)之所以可以随时调用len()(实现统计长度)函数,是因为,它是python内置的函数(提前写好的)。不使用len()函数如何实
springboot整合springmvc
小僵123456
SpringBoot spring boot 后端 java
1、创建springboot项目,勾选Springweb当前springboot选择的是2.6.13版本,jdk1.8尽量选2.几的springboot2、在pom.xml中导入相应的坐标org.springframework.bootspring-boot-starter-web3、配置application.yml,按需配置,可选server:port:8080spring:datasourc
SpringMVC架构介绍
丹_妮
spring
MVC框架要做的事情?1)将url映射到java类或java类的方法2)封装用户提交的数据3)处理请求-调用相关的业务处理-封装响应数据4)将响应的数据进行渲染jsphtml为什么要学习SpringMVC?性能较struts2好简单、便捷、易学天生和Spring无缝集成,使用Spring的IOC和AOP还有事务使用约定由于配置能够进行简单的junit测试支持restful风格异常处理本地化、国际化
Spring MVC 架构详解
firepation
Spring Java spring mvc
SpringMVC(Model-View-Controller)是Spring框架中用于构建Web应用程序的模块。它通过分离应用程序的不同方面(输入逻辑、业务逻辑和UI逻辑)来简化开发工作。本文将详细介绍SpringMVC架构及其基本组件,包括DispatcherServlet、HandlerMapping、Controller和ViewResolver。SpringMVC架构SpringMVC架
springmvc用配置类替换xml配置
码里法
其他 java mvc spring
ssm基础项目整合前言xml配置mybatis.xmlspingmvc.xmlweb.xml配置类jdbc配置类mybatis配置SpringConfig配置SpringMvcConfig配置shiro配置WebInit前言其实这中间用配置类,发现问题还挺多的,所以记录一下,尤其是针对shiro的配置。xml配置mybatis.xmlArchetypeCreatedWebApplicationdi
怎么样才能成为专业的程序员?
cocos2d-x小菜
编程 PHP
如何要想成为一名专业的程序员?仅仅会写代码是不够的。从团队合作去解决问题到版本控制,你还得具备其他关键技能的工具包。当我们询问相关的专业开发人员,那些必备的关键技能都是什么的时候,下面是我们了解到的情况。
关于如何学习代码,各种声音很多,然后很多人就被误导为成为专业开发人员懂得一门编程语言就够了?!呵呵,就像其他工作一样,光会一个技能那是远远不够的。如果你想要成为
java web开发 高并发处理
BreakingBad
java Web 并发 开发 处理 高
java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降。常用的优化措施是M-S(
mysql批量更新
ekian
mysql
mysql更新优化:
一版的更新的话都是采用update set的方式,但是如果需要批量更新的话,只能for循环的执行更新。或者采用executeBatch的方式,执行更新。无论哪种方式,性能都不见得多好。
三千多条的更新,需要3分多钟。
查询了批量更新的优化,有说replace into的方式,即:
replace into tableName(id,status) values
微软BI(3)
18289753290
微软BI SSIS
1)
Q:该列违反了完整性约束错误;已获得 OLE DB 记录。源:“Microsoft SQL Server Native Client 11.0” Hresult: 0x80004005 说明:“不能将值 NULL 插入列 'FZCHID',表 'JRB_EnterpriseCredit.dbo.QYFZCH';列不允许有 Null 值。INSERT 失败。”。
A:一般这类问题的存在是
Java中的List
g21121
java
List是一个有序的 collection(也称为序列)。此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复
读书笔记
永夜-极光
读书笔记
1. K是一家加工厂,需要采购原材料,有A,B,C,D 4家供应商,其中A给出的价格最低,性价比最高,那么假如你是这家企业的采购经理,你会如何决策?
传统决策: A:100%订单 B,C,D:0%
&nbs
centos 安装 Codeblocks
随便小屋
codeblocks
1.安装gcc,需要c和c++两部分,默认安装下,CentOS不安装编译器的,在终端输入以下命令即可yum install gccyum install gcc-c++
2.安装gtk2-devel,因为默认已经安装了正式产品需要的支持库,但是没有安装开发所需要的文档.yum install gtk2*
3. 安装wxGTK
yum search w
23种设计模式的形象比喻
aijuans
设计模式
1、ABSTRACT FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:
开发管理 CheckLists
aoyouzi
开发管理 CheckLists
开发管理 CheckLists(23) -使项目组度过完整的生命周期
开发管理 CheckLists(22) -组织项目资源
开发管理 CheckLists(21) -控制项目的范围开发管理 CheckLists(20) -项目利益相关者责任开发管理 CheckLists(19) -选择合适的团队成员开发管理 CheckLists(18) -敏捷开发 Scrum Master 工作开发管理 C
js实现切换
百合不是茶
JavaScript 栏目切换
js主要功能之一就是实现页面的特效,窗体的切换可以减少页面的大小,被门户网站大量应用思路:
1,先将要显示的设置为display:bisible 否则设为none
2,设置栏目的id ,js获取栏目的id,如果id为Null就设置为显示
3,判断js获取的id名字;再设置是否显示
代码实现:
html代码:
<di
周鸿祎在360新员工入职培训上的讲话
bijian1013
感悟 项目管理 人生 职场
这篇文章也是最近偶尔看到的,考虑到原博客发布者可能将其删除等原因,也更方便个人查找,特将原文拷贝再发布的。“学东西是为自己的,不要整天以混的姿态来跟公司博弈,就算是混,我觉得你要是能在混的时间里,收获一些别的有利于人生发展的东西,也是不错的,看你怎么把握了”,看了之后,对这句话记忆犹新。 &
前端Web开发的页面效果
Bill_chen
html Web Microsoft
1.IE6下png图片的透明显示:
<img src="图片地址" border="0" style="Filter.Alpha(Opacity)=数值(100),style=数值(3)"/>
或在<head></head>间加一段JS代码让透明png图片正常显示。
2.<li>标
【JVM五】老年代垃圾回收:并发标记清理GC(CMS GC)
bit1129
垃圾回收
CMS概述
并发标记清理垃圾回收(Concurrent Mark and Sweep GC)算法的主要目标是在GC过程中,减少暂停用户线程的次数以及在不得不暂停用户线程的请夸功能,尽可能短的暂停用户线程的时间。这对于交互式应用,比如web应用来说,是非常重要的。
CMS垃圾回收针对新生代和老年代采用不同的策略。相比同吞吐量垃圾回收,它要复杂的多。吞吐量垃圾回收在执
Struts2技术总结
白糖_
struts2
必备jar文件
早在struts2.0.*的时候,struts2的必备jar包需要如下几个:
commons-logging-*.jar Apache旗下commons项目的log日志包
freemarker-*.jar  
Jquery easyui layout应用注意事项
bozch
jquery 浏览器 easyui layout
在jquery easyui中提供了easyui-layout布局,他的布局比较局限,类似java中GUI的border布局。下面对其使用注意事项作简要介绍:
如果在现有的工程中前台界面均应用了jquery easyui,那么在布局的时候最好应用jquery eaysui的layout布局,否则在表单页面(编辑、查看、添加等等)在不同的浏览器会出
java-拷贝特殊链表:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
bylijinnan
java
public class CopySpecialLinkedList {
/**
* 题目:有一个特殊的链表,其中每个节点不但有指向下一个节点的指针pNext,还有一个指向链表中任意节点的指针pRand,如何拷贝这个特殊链表?
拷贝pNext指针非常容易,所以题目的难点是如何拷贝pRand指针。
假设原来链表为A1 -> A2 ->... -> An,新拷贝
color
Chen.H
JavaScript html css
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML> <HEAD>&nbs
[信息与战争]移动通讯与网络
comsci
网络
两个坚持:手机的电池必须可以取下来
光纤不能够入户,只能够到楼宇
建议大家找这本书看看:<&
oracle flashback query(闪回查询)
daizj
oracle flashback query flashback table
在Oracle 10g中,Flash back家族分为以下成员:
Flashback Database
Flashback Drop
Flashback Table
Flashback Query(分Flashback Query,Flashback Version Query,Flashback Transaction Query)
下面介绍一下Flashback Drop 和Flas
zeus持久层DAO单元测试
deng520159
单元测试
zeus代码测试正紧张进行中,但由于工作比较忙,但速度比较慢.现在已经完成读写分离单元测试了,现在把几种情况单元测试的例子发出来,希望有人能进出意见,让它走下去.
本文是zeus的dao单元测试:
1.单元测试直接上代码
package com.dengliang.zeus.webdemo.test;
import org.junit.Test;
import o
C语言学习三printf函数和scanf函数学习
dcj3sjt126com
c printf scanf language
printf函数
/*
2013年3月10日20:42:32
地点:北京潘家园
功能:
目的:
测试%x %X %#x %#X的用法
*/
# include <stdio.h>
int main(void)
{
printf("哈哈!\n"); // \n表示换行
int i = 10;
printf
那你为什么小时候不好好读书?
dcj3sjt126com
life
dady, 我今天捡到了十块钱, 不过我还给那个人了
good girl! 那个人有没有和你讲thank you啊
没有啦....他拉我的耳朵我才把钱还给他的, 他哪里会和我讲thank you
爸爸, 如果地上有一张5块一张10块你拿哪一张呢....
当然是拿十块的咯...
爸爸你很笨的, 你不会两张都拿
爸爸为什么上个月那个人来跟你讨钱, 你告诉他没
iptables开放端口
Fanyucai
linux iptables 端口
1,找到配置文件
vi /etc/sysconfig/iptables
2,添加端口开放,增加一行,开放18081端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 18081 -j ACCEPT
3,保存
ESC
:wq!
4,重启服务
service iptables
Ehcache(05)——缓存的查询
234390216
排序 ehcache 统计 query
缓存的查询
目录
1. 使Cache可查询
1.1 基于Xml配置
1.2 基于代码的配置
2 指定可搜索的属性
2.1 可查询属性类型
2.2 &
通过hashset找到数组中重复的元素
jackyrong
hashset
如何在hashset中快速找到重复的元素呢?方法很多,下面是其中一个办法:
int[] array = {1,1,2,3,4,5,6,7,8,8};
Set<Integer> set = new HashSet<Integer>();
for(int i = 0
使用ajax和window.history.pushState无刷新改变页面内容和地址栏URL
lanrikey
history
后退时关闭当前页面
<script type="text/javascript">
jQuery(document).ready(function ($) {
if (window.history && window.history.pushState) {
应用程序的通信成本
netkiller.github.com
虚拟机 应用服务器 陈景峰 netkiller neo
应用程序的通信成本
什么是通信
一个程序中两个以上功能相互传递信号或数据叫做通信。
什么是成本
这是是指时间成本与空间成本。 时间就是传递数据所花费的时间。空间是指传递过程耗费容量大小。
都有哪些通信方式
全局变量
线程间通信
共享内存
共享文件
管道
Socket
硬件(串口,USB) 等等
全局变量
全局变量是成本最低通信方法,通过设置
一维数组与二维数组的声明与定义
恋洁e生
二维数组 一维数组 定义 声明 初始化
/** * */ package test20111005; /** * @author FlyingFire * @date:2011-11-18 上午04:33:36 * @author :代码整理 * @introduce :一维数组与二维数组的初始化 *summary: */ public c
Spring Mybatis独立事务配置
toknowme
mybatis
在项目中有很多地方会使用到独立事务,下面以获取主键为例
(1)修改配置文件spring-mybatis.xml <!-- 开启事务支持 --> <tx:annotation-driven transaction-manager="transactionManager" /> &n
更新Anadroid SDK Tooks之后,Eclipse提示No update were found
xp9802
eclipse
使用Android SDK Manager 更新了Anadroid SDK Tooks 之后,
打开eclipse提示 This Android SDK requires Android Developer Toolkit version 23.0.0 or above, 点击Check for Updates
检测一会后提示 No update were found