FT项目开发技术点(二)
1.mybatis二级缓存,指的的是将数据缓存,而非对象,而非获得的list。缓存将数据库中的数据,是数据,缓存到内存中。之后将数据每次重新加载到list中,所以每次生成的list对象都是不同的,list.hashcode()都不同。
开启二级缓存
1)、 在核心配置文件SqlMapConfig.xml中加入以下内容(开启二级缓存总开关):
cacheEnabled设置为 true
2)、在映射文件中,加入以下内容,开启二级缓存:
3).pojo实现序列化
由于二级缓存的数据不一定都是存储到内存中,它的存储介质多种多样,所以需要给缓存的对象执行序列化。
如果该类存在父类,那么父类也要实现序列化。
4).在相应mapper xml的cru insert update delete语句中添加刷新缓存属性
2.eclipse将项目发布到tomcat中,注:同一个项目,新项目会覆盖掉Tomcat中以前的项目,将旧项目删除再存入新项目。所以,一定要记得:images,db这种数据存储位置一定不要放在tomcat项目中,而是放在项目外。这样保证重新发布项目时,数据不受影响。
3.mybatis数据映射问题,mybatis没有hibernate那样,有xml文件将pojo类和数据库表中的字段匹配的xml。所以这就要求项目中的pojo类属性与数据库表中的字段要完全能匹配,名称要一样。这样mybatis才能将pojo类和表匹配起来。
4.mybatis也要配置扫描包。mybatis的扫描包指的是包含xml映射接口的包。
5.spring mvc上传图片问题,上传要记得添加两个jar包:commons-io.jar 和commons-fileupload.jar包。
并在sppring mvc中配置如下multipartResolver bin
<bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/>
同时jsp form表单要记得enctype=”multipart/form-data” 这个是上传文件必须的
controller中处理方法为:
- public void addImage(HttpServletRequest request,String path1,String path2) {
- //转型为MultipartHttpRequest(重点的所在)
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- // 获得第1张图片(根据前台的name名称得到上传的文件)
- MultipartFile imgFile1 = multipartRequest.getFile("imgFile");
- String fileName = imgFile.getOriginalFilename(); //获得上传文件名
- //获取上传文件类型的扩展名,先得到.的位置,再截取从.的下一个位置到文件的最后,最后得到扩展名
- String ext = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length()); //获得后缀名,知道上传文件类型。
6.只接收指定类型的图片:
- //定义一个数组,用于保存可上传的文件类型
- List fileTypes = new ArrayList();
- fileTypes.add("jpg");
- fileTypes.add("jpeg");
- fileTypes.add("bmp");
- fileTypes.add("gif");
- String ext = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length());
- //对扩展名进行小写转换
- ext = ext.toLowerCase();
- if(fileTypes.contains(ext)) { //so something }
7.字符串string的常用操作:
(1)string.subString(),string.lastIndexOf(".")两个方法获得文件后缀名 String ext = fileName.substring(fileName.lastIndexOf(".")+1,fileName.length()); //获得后缀名,知道文件类型。
(2)str.tolowercase()将str所有字符大小写转换.
(3)str.replaceAll("/",""),替换字符问题。将第第一个参数全部替换为第二个参数。
- typeName = typeName.replaceAll("/", ""); //去掉"/"
- typeName = typeName.replaceAll(" ", ""); //替换半角空格
- typeName = typeName.replaceAll(" ", ""); //替换全角空格
- brandName = brandName.replaceAll("/", ""); //去掉"/"
- brandName = brandName.replaceAll(" ", ""); //替换半角空格
- brandName = brandName.replaceAll(" ", ""); //替换全角空格
8.java hashcode判断对象是否相等
1)Object类中的hashCode则和之前的不一样了,他是根据对象的内存地址经过哈希算法之后获取到的哈希码,由于每个对象的内存地址不相同,所以hashCode是不同的。
2)string,integer这种运用池技术的,string。integer类的hashcode()算法不一样了就,不能像object中的计算方法了。
- public static void main(String[] args) {
- String a ="cx";
- String b = "cx";
- System.out.println(b.hashCode()==a.hashCode());
- }
结果我想大家已经猜到了,true!
- Integer a =11;
- Integer b = 11;
- System.out.println(b.hashCode()==a.hashCode());
结果还是true!
9.eclipse中图片读取不到,确定途径配置都是准确的
:原因可能是重启下eclipse,或者服务器。之后可能就显示出来
10.spring mvc配置图片显示不出来原因可能之二,没配置静态资源响应servlet,导致静态资源的全部获取都被dispatcherservlet拦截了。
:今天碰到了一个问题,启动web项目,在某个jsp页面中放了一个img标签,但是图片死活显示不出来,一直报404。我对天发誓路径绝对是正确的。弄了好久,终于找出问题所在了,在sping-mvc.xml配置文件中少写了一行代码。“<mvc:default-servlet-handler />”行代码少写了。有 了<mvc:default-servlet-handler/> spring会用默认的Servlet来响应静态文件,(DefaultServletHttpRequestHandler在容器启动是会使用主流web容器默认servlet的名称列表自动查找容器的默认servlet。不然的话就不会响应静态文件,就会一直报404.希望对大家有所帮助!
11.java获得当前项目的根路径
:从httpServletRequest出发(没有请求的话会抛空指针导常)
String path=request.getSession().getServletContext().getRealPath("/");
结果形如: F:\tomcat-6.0.36\webapps\test\
注意:request.getContextPath()获得得路径是项目名称路径,即保证在当前项目下。如request.getContextPath()结果的test\
request.getSession().getServletContext().getRealPath("/");结果形如F:\tomcat-6.0.36\webapps\test\
12.java创建文件,比如图片,txt,等各种类型文件
File f1 =new File("c:\\abc\\1.txt");只需要传入文件的相应后缀名即可,就可以创建相应文件。
因为任何文件的内容都是以二进制流形式发送的。所以不需要管不同文件怎么传输,只需要获得获得文件名和问价后缀名。
File[] listFiles(FilenameFilter filter)获得该文件下所有文件。
FT项目开发技术点(二)的更多相关文章
- FT项目开发技术点(四)
1.jsp页面form传递过来的值是在后台ishi通过name获得的而非ID.上传文字要用input type=text属性 <tr> <th>品牌:</th> & ...
- FT项目开发技术点(三)
1.eclipse中开发的web项目怎么放到tomcat中? 记得开始学习Java Web的时候,首先用的是Eclipse开发,但是有一个问题始终没有弄明白,做好的Web项目是如何发布到Tomcat服 ...
- Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述—— 隐鹤 / HelloWorld
Excel阅读模式/聚光灯开发技术之二 超级逐步录入提示功能开发原理简述———— 隐鹤 / HelloWorld 1. 引言 自本人第一篇博文“Excel阅读模式/单元格行列指示/聚光灯开发技术要 ...
- Android项目开发全程(二)--Afinal用法简单介绍
本篇博文接上篇的<Android项目开发全程(一)--创建工程>,主要介绍一下在本项目中用到的一个很重要的框架-Afinal,由于本系列博文重点是项目开发全程,所以在这里就先介绍一下本项目 ...
- 前端(Node.js)(3)-- Node.js实战项目开发:“技术问答”
1.Web 与 Node.js 相关技术介绍 1.1.Web应用的基本组件 web应用的三大部分 brower(GUI)<==>webserver(business logic.data ...
- Java社区——个人项目开发笔记(二)
1.B\S架构通信原理 浏览器,服务器之间产生通信,浏览器访问服务器,服务器返回一个HTML,浏览器会对HTML进行解析,并渲染相关的内容. 在解析过程中,会发现HTML里引用了css文件,js文件, ...
- Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表
前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...
- p2p网贷项目开发全过程技术详解,应用框架是ci2.2
p2p网贷项目开发全过程技术详解,应用框架是ci2.2 很标准的mvc开发代码,代码也很简单,方便二次开发 这篇文章会不断更新
- 使用Jquery+EasyUI 进行框架项目开发案例解说之二---用户管理源代码分享
使用Jquery+EasyUI 进行框架项目开发案例解说之二 用户管理源代码分享 在上一篇文章<使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享> ...
随机推荐
- Java之杨辉三角的实现
今天突然想温习一下Java的基础,想了想就写写杨辉三角吧 1.直接法,利用二维数组 import java.util.Scanner; public class Second { public sta ...
- progressDialog和子线程模拟显示拷贝进度
package com.example.wang.myapplication; import android.app.ProgressDialog; import android.os.Bundle; ...
- python开发学习-day14(jquery、ajax等)
s12-20160421-day14 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: ...
- MyEclipse个性化设置
1.修改项目文件默认编码 Note:myEclipse默认的编码是GBK, 也就是未设置编码格式的文件都默认使用GBK进行编码, 而更糟糕的是JSP.JavaScriptt默认编码竟然是ISO-885 ...
- ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7
ECshop 迁移到 PHP7版本时遇到的兼容性问题,ecshopphp7 在 PHP7 上安装 ECShop V2.7.3时,报错! Deprecated: Methods with the sam ...
- 使用Swing的JSpinner组件设置日期时间选择器
代码: //获得时间日期模型 SpinnerDateModel model = new SpinnerDateModel(); //获得JSPinner对象 JSpinner year = new J ...
- python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法
1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过“类名()”的方式实例 ...
- RMQ_第一弹_Sparse Table
title: RMQ_第一弹_Sparse Table date: 2018-09-21 21:33:45 tags: acm RMQ ST dp 数据结构 算法 categories: ACM 概述 ...
- Python 入门之基本数据类型
为什么我要学习Python这门语言呢?其实很简单,我想拓展技术面的同时,尝试更多的方向,可能最后会不了了之,谁知道呢?有可能的话,我会向爬虫和数据分析这个方向走.所以也就开始了我的Python学习之旅 ...
- ARKit:增强现实技术在美团到餐业务的实践
前言 增强现实(Augmented Reality)是一种在视觉上呈现虚拟物体与现实场景结合的技术.Apple 公司在 2017 年 6 月正式推出了 ARKit,iOS 开发者可以在这个平台上使用简 ...