springmvcの神总结のreadme
********李守宏springmvc********
3.==
--\springmvc一个controller实现多个方法
----\继承MultiActionController
----\配置spring-servlet的bean
5==静态文件的访问
----\<!-- 静态资源访问 -->
<mvc:resources location="/image/" mapping="/image/**"></mvc:resources>
6注解启用访问
-->开起注解 spring2-3以后会被代替
<!-- 开起注解使用注解 -->
<context:component-scan base-package="com.tgb.controller"></context:component-scan>
<!--找方法,找类 ,注解扫描包 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
7注解配置优化
--> <!-- 注解优化,mvc的配置,以上2.0,3.0会被取代 -->
<!-- 开起注解 -->
<mvc:annotation-driven/>
0.0:url重复会报错,貌似是我白天的错误,注意唯一标识
-->类上也可以使用注解
@Controller
@RequestMapping(value="/user2")
public class User2Controller {
-->method=.post/.get去掉,可一省掉很多麻烦
-->value="/user" value也可以省去
@RequestMapping("/addUser")
-->modelandview 也可以省掉
8springmvc参数传递
-->springmvc会自动匹配到后台和jspname一样的值并传递
-->鉴于每次都要使用request,我可以建一个基类,里面提供request,哈哈哈
-->web.xml强制编码格式
9->通过实体类的get set传递值,前台name和实体类中必须一致
9json ajax 传递数据
$(function(){
$("#add").click(function(){
var userName=$("#userName").attr("value");
var age=$("#age").attr("value");
var user={userName:userName,age:age} $.ajax({
url:"/springmvc/user/data/addUser",
type:"post",
data:user,
success:function(data){
alert("userName--->"+data.userName+"age--->"+data.age);
}
});
});
});
注意,会因为相对路径问题出错,可以右击图片属性查看地址看了解,见识啊
10-json传递数据到页面
使用printWriter 打印
String result = "{\"userName\":\" "+ user.getUserName()+"\",\"age\":\""+user.getAge()+"\"}";
PrintWriter out = response.getWriter();;
//设置http相应类型
response.setContentType("application/json");
out.write(result);
11-文件上传
-->导入io和upload的jar包
-->enctype属性规定发送到服务器之前应该如何对表单数据进行编码
-->上传文件时form必须加enctype="enctype="multipart/form-data"
-->配置xml
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize"><value>100000</value></property>
<property name="defaultEncoding"><value>UTF-8</value></property>
<property name="maxInMemorySize" value="40960"></property>
</bean>
-->文件上传必须采用post方式
get方式是用url提交,文件自然不是url
12上传文件优化,不推荐使用springmvc的上传,推荐使用jquery的上传,可以再客户端使用,减少web的压力
spring通过对servlet的httpservletrequest接口进行扩展,时期能够很好的处理文件上传,扩展后的几口名为
interface MultipartHtpServletRequest extends HttpServletRequest{
public MultipartFile getFile(String name);
public Map getFileMap();
public Iterator getFileNames();
}
@RequestMapping("upload2")
public String upload2(HttpServletRequest request,HttpServletResponse response) throws Exception, IOException{
//定义解析器,实例化,解析springmvc的上下文
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
//解析request,判断是否为Multipart类型数据
if(multipartResolver.isMultipart(request)){
//是则定义springmvc封装好的request
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest)(request);
//拿文件,迭代器,封装好的
Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
while(iterator.hasNext()){
//如果有根据迭代器中的下一个名字获取文件,MultipartFile是springmvc封装好的文件类
MultipartFile file = multipartHttpServletRequest.getFile((String)iterator.next());
if(file!=null){
String fileName = "demoUpload"+file.getOriginalFilename();
String path = "D:/"+fileName;
//创建一个本地关联路径的文件对象
File localFile = new File(path);
//将文件对象写到指定(本地)文件上,springmvc提供的方法
file.transferTo(localFile);
//还可以拿到输入流,就可以拿到数据or文件
file.getInputStream();
} }
}
return "success";
}
13springmvc和spring集成
-->web.xml中的启动顺序
<context-param>->listener-filter-servlet
<!-- Struts2的action由Spring来负责进行实例化 spring+struts2集成的关键点 -->
<constant name="struts.objectFactory" value="spring" />
->1:添加jar包,spring和springmvc用jar包类似
2:配置web.xml文件
springmvcの神总结のreadme的更多相关文章
- 【转】反编译获取任何微信小程序源码(完)
一.前言最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了一个阿里妈妈淘宝客小程序的前端实现,过程一言难尽,差不多两周时间过去了,发现小程序的坑远比想象的要多的多!!在实际练手 ...
- 想要进步,就要阅读大神的博客,再推荐一波springmvc映射路径之url的action请求
http://www.cnblogs.com/liukemng/p/3726897.html
- 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程
本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...
- 使用Spring和SpringMVC管理bean时要注意的一个小细节
最近一直在做毕业设计...用到了Shiro和SpringMVC..用过shiro的朋友都知道shiro需要自己去写Realm,然后把Realm注入到SecurityManager中.而Security ...
- JAVA过滤器与SpringMVC拦截器之间的区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊, 而且看的比较粗浅,没有一个全局而又细致的认识,由于已至 ...
- springmvc restful配置有一个小小的坑坑
首先web.xml配置 <!-- spring-mvc --> <servlet> <servlet-name>springServlet</servlet- ...
- SpringMVC与Struts2区别与比较总结
1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...
- Java过滤器与SpringMVC拦截器之间的关系与区别
今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深 ...
- 13.SpringMVC和Spring集成(一) && 14.SpringMVC和Spring集成(二)
1.概念 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,Spring致力于J2EE应用的各层的解决方案,Spring是企业应用开发的“一站式”选择,并贯 ...
随机推荐
- windows下Qt5.1.0配置android环境搭建 good
1.首先下载好需要配置的软件: 1>Qt 5.1.0 for Android (Windows 32-bit, 716 MB)(Info)下载地址: http://qt-project.org/ ...
- zepto源码--isEmptyObject,isNumeric,inArray,trim--学习笔记
1.isEmptyObject,判断对象是否为空对象的函数 定义变量name,遍历传入对象的属性name,如果存在任何属性,则返回false,判定传入的参数为非空对象,否则即为空对象. 2.isNum ...
- php--tp3.2引入sphinx搜索
1.首先我们把coreseek下载好,命名为coreseek,我们找到coreseek/etc中的csft_mysql.conf修改这个配置文件 #源定义 source lemai { type ...
- ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法
原文:ArcGIS API for Silverlight 调用WebService出现跨域访问报错的解决方法 群里好几个朋友都提到过这样的问题,说他们在Silverlight中调用了WebServi ...
- DHT(Distributed Hash Table) Translator
DHT(Distributed Hash Table) Translator What is DHT? DHT is the real core of how GlusterFS aggregates ...
- cocoapods没有自动补齐
在install cocoapods成功之后,输入头文件名的时候,没有提示,这样,我还以为是我的cocoapods安装出错了.原来是配置没有配置好. 解决办法: 选择工程的 Target -> ...
- Selenium2学习-012-WebUI自动化实战实例-010-解决元素失效:StaleElementReferenceException: stale element reference: element is not attached to the page document
元素失效的想象提示信息如下图所示,此种问题通常是因为元素页面刷新之后,为重新获取元素导致的. 解决此类问题比较简单,只需要在页面刷新之后,重新获取一下元素,就可以消除此种错误了. 以下以易迅网搜索为例 ...
- python get方法
dics.get(k,d)get相当于一条if...else...语句.如果参数k在字典dics中,字典将返回dics[k];返回参数d.例子 >>> l = {:, :} > ...
- javascript实例学习之八——无缝切换效果
无缝切换在网站的很多地方都有涉及,比如轮播图等. 基本思路: 1)将可视窗当前的元素复制,依次添加为ul中的子元素 2)改变ul整体的left取值(负的窗口值),动画缓动至想要的位置 3)将原视窗(已 ...
- QString 和 TCHAR 的相互转换
参考资料: http://www.cnblogs.com/fuyanwen/p/3200536.htmlhttp://www.cnblogs.com/wendao/archive/2012/07/27 ...