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是企业应用开发的“一站式”选择,并贯 ...
随机推荐
- Dlib is a modern C++ toolkit(非常全面的类库)
http://dlib.net/ http://download.csdn.net/detail/lajuedan2508/9726225 http://download.csdn.net/detai ...
- 一本很不错的书----DOOM启示录
强推,所有玩游戏的和做游戏的热爱游戏的都应该看看. 摘录了一些话. 盖茨不明白,为什么啊为什么,为什么一个麦斯奎特的小公司,居然能从他手下挖走迈克尔·亚伯拉什,而且仅仅凭借几个游戏就胜过了自己的软件帝 ...
- LightOj1203 - Guarding Bananas(凸包求多边形中的最小角)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1203 题意:给你一个点集,求凸包中最小的角:模板题,但是刚开始的时候模板带错了,错的我 ...
- 利用utl_file来读取文件.
以前写过用external table来加载trace文件,详情参考下面链接. http://www.cnblogs.com/princessd8251/p/3779145.html 今天要做到是用U ...
- 还原ORACLE DUMP 的值
还原DUMP出来的数字SQL> select dump(2000,16) from dual; DUMP(2000,16)------------------Typ=2 Len=2: c2,15 ...
- 使用dd工具对磁盘RAID5和10进行I/O性能测试
很多情况下大家在对于理论深信不疑,理论是有前提条件的,不是所有的情况下都是正确的.恰逢公司有服务器,故进行了磁盘性能测试,当然测试的结果也只是顺序I/O性能测试(dd机制决定的). 前提条件:(DEL ...
- Foundation of 3D computer Graphics--Reading notes
2.1 几何数据类型 向量表示两个点之间的移动,点表示位置. 2.2 向量,坐标向量和基 向量$\overrightarrow{v}$ ,坐标向量c,基向量$\overrightarrow{b^{t} ...
- SQLAlchemy 对象缓存和刷新
SQLAlchemy 对象缓存和刷新 SQLAlchemy 带有对象缓存机制,在重复查询相同的对象时,直接先查询本地的缓存,而不需要从数据库加载数据. 在每个 model 对象的内部,SQLAlche ...
- git 入门 2
进入d盘,新建project文件, 右键,git bash here cd project 初始化 $ git init 克隆项目 $ git clone http://192.168.1.188:3 ...
- UIPikerView的属性
1. numberOfComponents:返回UIPickerView当前的列数 NSInteger num = _pickerView.numberOfComponents; NSLog( ...