Java菜鸟学习日记35

来源:互联网 发布:希捷同步软件 编辑:程序博客网 时间:2024/06/05 00:21
MapReduce
  • MapReduce是一个解决复杂问题的思路。把解决1问题的过程拆分成两步:
  1. 映射:目的是将数据转换成目标类型
    1. 标签对象 —> 字符串对象
    2. 作用是转换或抽取数据
  2. 聚合:目的是将所有的数据聚合成一个数据
    • 好处是:将Map和Reduce分开,可以使Map和Reduce都更加简单
      • Map时只需考虑怎样抽取或转换数据即可
      • Reduce只需考虑怎样将上一步的计算结果和当前值计算在一起
      • 在集群运行环境中,Map和Reduce可以分散到N多电脑上同时进行。
JS中的MapReduce
  • [].map( x=>y ).reduce( (prev,current)=>A(prev,current),initValue )
    • 计算平方和:[1,2,3]
[1,2,3].map(x => x*x):[1,4,9]
.reduce( (prev,current) => (prev + current),0):14
0:为结果的初始值
URLEncoded格式
  • application/x-www-form-urlencoded
  • 形状:key1 = value1&key2 = value2&...
  • 生成这种格式:
    • $(form).serialize():收集表单数据,生成URLEncoded
    • 拼字符串
    • $.param(object):把JS对象变成URLEncoded
Ajax登录
可能会存在一种担心,就是Ajax登录成功时,网页是否也同时登录。
答案是:Ajax的Cookie和网页的Cookie是连通的,所以Ajax登录成功时,Cookie将会被正确地设置到网页中,网页也同时”登录成功”(虽然网页并没有刷新)
接口开发返回数据的统一模式
  • 通过code表示服务端处理是否成功,如果失败,则用各种数字表示不同的失败原因
  • 通过message表示失败的具体原因
  • 鉴于每一次请求都需要返回code和message,所以通常创建一个JSONResult类,在其中添加code和messag两个属性以统一作为Ajax或App接口得返回类型。
  • 因为成功的请求一定是占大多数的,所以在JSONResult上面还会有个static final的success属性,表示请求成功的结果,处理成功时直接返回JSONRestult.success
  • 如果要同时返回很多数据,则从JSONResult继承一个子类JSONDataResult,添加一个新属性:HashMap<String,Object> data 把需要返回的数据都put到data中即可
SpringMVC上传文件常见问题
  1. 创建了一个Bug模型,在Bug模型中定义了一个属性与文件上传input的name相同
    1. 网页上 <input type="file" name="image">
    2. 模型中 String image
    3. 会出现 400错误
    4. 解决方法:把input的name后属性的名字改成不一样的!
    5. 此时需单独添加一个参数:@RequestPart("image")、@RequestParam("image") MultipartFile image来接收上传的文件
  2. 不创建模型,在请求处理方法中 @RequestPart("desc") String desc。。。
    1. 解决的方法是只有MultipartFile类型的参数可以用@RequestPart
    2. 其他参数用@RequestParam即可解决问题
  3. 不用SpringMVC的机制,改为request.Part("desc").getInputStream()
    1. 会报Servlet上缺少MultipartConfig错误
    2. 解决办法:不要用该方法!
上传文件的分布问题
  • 用户上传的文件不能全部放到一个固定的文件夹中。
  • 用为随着用户量的增加及运行时长增长,该文件夹中的文件数量过多,导致系统IO性能降低并且该文件夹将很难维护
  • 解决方法,把用户上传的文件根据一个特定的方法分散到很多文件夹中,比如按上传日期分文件夹、按照商户ID分文件夹
开发过程中,上传的图片被删除的问题
  • Eclipse重启服务器Servers,或者删除Servers重新部署时,会导致应用被删除,应用内部的上传文件也会一并被删除
  • 解决方法:通过配置文件向应用指明,将上传的文件保存在应用之外的地方
  1. 用一台服务器上的其他磁盘
  2. 其他存储设备
  3. 其他服务器
  • 当把文件保存在应用之外时,如果希望通过应用内的URL访问这个文件,就需要创建虚拟目录:
    • 虚拟目录:应用内本来没有这个目录,但是Tomcat通过读取配置文件会把另外一个目录的内容当作是这个目录的内容。
      • <Host>
        • <Context>
    • 虚拟主机:在同一台硬件服务器上部署多个网站,这些网站可以使用不同的域名后端口。Tomcat通过分辨域名或端口号区分不同的请求,将之转发给不同的应用去处理。从而实现在一台硬件服务器上可以部署多个网站的效果。
      • <Connector>
      • <Host>
SpringMVC的对象池及Bean
  • 从对象池中获取Bean(对象):
  1. 使用注解@Autowired可以自动获取对象池中的对象
  2. 通过对象池(WebApplicationContext)的getBean()方法
  • 对象池:
    • 对象池是一个容器对象,对应的类型是各种ApplicationContext→底层是BeanFactor
  • 对象池与ServletContext之间的关系
    • ServletContext在jsp中有一个别名,叫application
    • ServletContext是Servlet的容器,内部管理的是Servlet对象(还可以通过addAttribute方法添加其他对象。但是仅仅是将这些对象放进去而已,并没有提供Spring自动获取对象的强大机制),而ApplicationContext是对象池,内部管理的是普通对象。
    • WebApplicationContext在ServletContext内部
    • WebApplicationContentUtils.findWebApplicationContext(ServletContext)可以获取ApplicationContext。
    • 之后可以通过getBean()方法获取对象池中的对象。
Bean对象的作用域(生存范围)
  • singleton:单例:整个应用声明周期中只创建一次
  • prototype:多例:每一次获取都创建一个新对象
  • 下面3个是Web特有的作用域
    • request:请求:每一次请求都可以创建一个新对象
    • session:用户会话:每一个JSESSIONID只创建一个新对象
    • globalSession:全局:一个应用只创建一次
在Bean中获取管理它的对象池
  • 让Bean实现BeanFactoryAware接口,即可接收到BeanFactory(对象池)
  • 如果子对象和父对象定义了同名的bean,则在子对象中获取的是本对象池中的bean
JS中this的指向是不固定的!!!
  • this的指向:
  1. 事件监听函数中的this,指向触发事件的标签元素
  2. jQuery的Ajax请求处理函数中的this,指向xhr对象
  3. setTimeout等定时器函数中的this,指向window对象
  4. 迭代函数中的this($.each, [].foreach),指向当前被迭代的元素
  5. 构造函数中的this,指向当前构造的实例对象
  • 改变函数中this指向的方法
    • newFunc = func.bind(obj):返回了一个新函数,调用时func内部的this指向了obj
    • func.apply(obj,....):立即调用func函数,并且使func内部的this指向obj
    • func.call(obj,[func的参数]):同上,区别仅仅是传参的方式不同
    • new Func = $,proxy(func,obj):返回一个新函数,与bind类似
    • 使用_this或that或me等变量代替this(因为this会被改变)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买的种子没出怎么办 铃木小r烧整流器怎么办 厨师在厨房太热怎么办 被家长投诉体罚孩子怎么办 空腹彩超喝水了怎么办 鱼把厕.所堵了怎么办 螃蟹爬进厕所里怎么办 抄作业被老师发现怎么办 鱼把厕所堵了怎么办 刚憋尿上完厕所之后腹部很疼怎么办 小孩被老师投诉了家长怎么办 家长投诉被老师知道了怎么办 孩子上课不敢回答问题怎么办 孩子犯了错家长怎么办 错了不该错的题怎么办 不该错的题错了怎么办 小学生不爱写课堂作业怎么办 手被老师打肿了怎么办 老师反应孩子学习退步了怎么办 学护理的打屁股针怎么办 教师被投诉打学生怎么办 遇到内向的学生教师应该怎么办 教师遇到顽劣的学生怎么办 家长质疑老师的能力怎么办 和领导有冲突该怎么办 孩子叫也不听特别叛逆怎么办 孩子叛逆期不听妈妈的话怎么办 学生和老师反嘴怎么办? 两个月的宝宝不拉屎怎么办 老师受家长的气怎么办 家长故意在班级群里气老师怎么办 幼儿园阿姨体罚孩子家长该怎么办 学生钱丢了老师怎么办 胸肌一边大一边小怎么办 被爱的人抛弃了怎么办 深蹲以后腿疼怎么办 做完蹲起大腿疼怎么办 练腿之后腿疼怎么办 深蹲做完后腿疼怎么办 做完上下蹲腿疼怎么办 钓鱼子线长了怎么办