********李守宏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的更多相关文章

  1. 【转】反编译获取任何微信小程序源码(完)

    一.前言最近在学习微信小程序开发,半个月学习下来,很想实战一下踩踩坑,于是就仿写了一个阿里妈妈淘宝客小程序的前端实现,过程一言难尽,差不多两周时间过去了,发现小程序的坑远比想象的要多的多!!在实际练手 ...

  2. 想要进步,就要阅读大神的博客,再推荐一波springmvc映射路径之url的action请求

    http://www.cnblogs.com/liukemng/p/3726897.html

  3. 【SSM框架】Spring + Springmvc + Mybatis 基本框架搭建集成教程

    本文将讲解SSM框架的基本搭建集成,并有一个简单demo案例 说明:1.本文暂未使用maven集成,jar包需要手动导入. 2.本文为基础教程,大神切勿见笑. 3.如果对您学习有帮助,欢迎各种转载,注 ...

  4. 使用Spring和SpringMVC管理bean时要注意的一个小细节

    最近一直在做毕业设计...用到了Shiro和SpringMVC..用过shiro的朋友都知道shiro需要自己去写Realm,然后把Realm注入到SecurityManager中.而Security ...

  5. JAVA过滤器与SpringMVC拦截器之间的区别

    今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊, 而且看的比较粗浅,没有一个全局而又细致的认识,由于已至 ...

  6. springmvc restful配置有一个小小的坑坑

    首先web.xml配置 <!-- spring-mvc --> <servlet> <servlet-name>springServlet</servlet- ...

  7. SpringMVC与Struts2区别与比较总结

    1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...

  8. Java过滤器与SpringMVC拦截器之间的关系与区别

    今天学习和认识了一下,过滤器和SpringMVC的拦截器的区别,学到了不少的东西,以前一直以为拦截器就是过滤器实现的,现在想想还真是一种错误啊,而且看的比较粗浅,没有一个全局而又细致的认识,由于已至深 ...

  9. 13.SpringMVC和Spring集成(一) && 14.SpringMVC和Spring集成(二)

    1.概念 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,Spring致力于J2EE应用的各层的解决方案,Spring是企业应用开发的“一站式”选择,并贯 ...

随机推荐

  1. c# ToString() 用法

    string tempa = Convert.ToString(31, 2);//将10进制数31转换为2进制字符串. string strNums = int.Parse(tempa).ToStri ...

  2. zepto源码--compact、flatten、camelize、dasherize、uniq--学习笔记

    1.compact 删除数组中的空元素(不是空字符串).undefined.null 在定义变量时,定义过filter = emptyArray.filter,即调用javascript原生的数组处理 ...

  3. css spprite应用

    (一)实现简单的淘宝带图标侧边栏效果 <!DOCTYPE html> <html lang="en"> <head> <meta char ...

  4. 其他常用HTML 片段

    1.input placeholder 文字居中 字体大小+上下padding值等于设计稿宽度 设计稿中总高度为86px   padding:27px 0;font-size:30px;   2.英文 ...

  5. MVC分页控件之二,为IQueryable定义一个扩展方法,直接反回PagedList<T>结果集(转)

    namespace Entity { public interface IPagedList { /// <summary> /// 记录数 /// </summary> in ...

  6. css中的盒子模型

    css中的盒子模型 css中的盒子模型,有两种,一种是“标准 W3C 盒子模型”,另外一种是IE盒子模型.   1.w3c盒子模型 从图中可以看出:w3c盒子模型的范围包括了:margin,borde ...

  7. Installation of Theano on Windows

    http://deeplearning.net/software/theano/install_windows.html

  8. Eight Popular Open Source Android Game Engines

    https://software.intel.com/en-us/blogs/2012/05/14/eight-popular-open-source-android-game-engines

  9. 浅谈 man 命令的日常使用

    Linux系统提供了相对比较丰富的帮助手册(man),man是manual的缩写,在日常linux系统管理中经常用到,今天就简单聊聊man.man 本身也提供自己的帮助手册,通过man就可以查看. ( ...

  10. 在Visual Studio 2015中运行OPENGL

    Starting an OpenGL project in VS 2015 is really easy, thanks to the NupenGL.Core nuget package. Here ...