文档章节

Java-学习笔记

吃兔纸不吐毛
 吃兔纸不吐毛
发布于 2016/12/09 16:08
字数 787
阅读 2
收藏 0
点赞 0
评论 0

一、IO方面:

1.文件上传-用Spring方法

public void uploadFile3(MultipartHttpServletRequest multipartRequest, String xml) throws IOException {
		MultipartFile xmlFile = multipartRequest.getFile("xmlFile");
		
		InputStreamReader reader = new InputStreamReader(xmlFile.getInputStream());
		BufferedReader br = new BufferedReader(reader);
		StringBuilder sb = new StringBuilder();
		while (br.ready()) {
			sb.append(br1.readLine().trim());// 每次循环用readLine()读取下一行
		}
    }

注意:前端JSP的form表单要加这个属性和值,<form enctype="multipart/form-data">,让Spring知道这是一个文件上传的表单。

 

2.用IO流读取文件

public void uploadFile3(String xml) throws IOException {
		String pathname = "C:\\Software\\SFA_TEST_pic\\surveyImageDetail.xml";
		File xmlFile = new File(pathname);
		InputStreamReader reader = new InputStreamReader(new FileInputStream(xmlFile)); // 建立一个输入流对象reader
		BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
		StringBuilder sb = new StringBuilder();
		while (br.ready()) {
			sb.append(br.readLine().trim());// 每次循环用readLine()读取下一行
		}
    }

 

3.页面提交表单(参数),下载文件(excel)

@RequestMapping("/downloadFile")
@ResponseBody
public void downloadFile(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	String fileName = "QC_Difference_Photo";
	response.reset();
	response.setContentType("application/vnd.ms-excel");
	// 设置Content-disposition通知浏览器以下载方式打开文件
	response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xls");
	OutputStream out = response.getOutputStream();
    
	// 应用OutputStream的代码
	WritableWorkbook wwb = Workbook.createWorkbook(out);
	// 此处具体代码
	// ………………………………
	// 用好了输出并关闭
	wwb.write();
	wwb.close();
}

 

三、其他

1. 取小数点后几位

import java.text.DecimalFormat;

DecimalFormat df=new DecimalFormat(".####");// 取小数点后4位
df.format(totalErrorRate);// 参数:double类型的值,返回:String类型的值

2. 后台配合EasyUI-datagrid传值

分页工具:

import java.lang.reflect.Field;
import java.util.List;

public class PageUtil {

	public static List<Integer> paginate(List<Integer> list, int rows, int page) {
		int total = list.size();
		if (total < rows) {
			return list;
		} else if (page * rows > total) {
			return list.subList((page - 1) * rows, total);
		} else {
			return list.subList((page - 1) * rows, page * rows);
		}
	}

	public static List paginateList(List list, int rows, int page) {
		int total = list.size();
		if (total < rows) {
			return list;
		} else if (page * rows > total) {
			return list.subList((page - 1) * rows, total);
		} else {
			return list.subList((page - 1) * rows, page * rows);
		}
	}

	@SuppressWarnings("unchecked")
	public static <T> T initObject(Object obj) {
		try {
			for (Field f : obj.getClass().getDeclaredFields()) {
				f.setAccessible(true);

				if (f.getGenericType().equals(String.class)) {
					f.set(obj, "");
				}
			}

		} catch (Exception e) {
			return null;
		}
		return (T) obj;
	}

}

service接口实现调用分页工具:

@Override
public Map<String, Object> getAuditRecordListInPage(Map params, int rows, int page) {
	Map<String, Object> pageData = new HashMap<String, Object>(10);
    List<Integer> auditRecordIds = new ArrayList<Integer>();
    List<Map<String, Object>> allIds = auditSelectNonLevelMapper.getAuditRecordIdList(params);
    for (Map<String, Object> map : allIds) {
        if (map.get("ID") != null) {
        	auditRecordIds.add(NumberUtils.toInt(map.get("ID").toString()));
        }
    }
    pageData.put("total", auditRecordIds.size());
    if (auditRecordIds.size() == 0) {
        pageData.put("rows", new ArrayList<PropertyMgmt>());
    } else {
        params.put("ids", PageUtil.paginate(auditRecordIds, rows, page));
        if(rows == 0 && page == 0){
        	params.put("ids", auditRecordIds);
        }
        
        pageData.put("rows", auditSelectNonLevelMapper.getAuditRecordList(params));
    }
    return pageData;
}

传入参数是:
params:页面的参数,作为数据库查询条件的(request.getParameter(""))
rows:页面datagrid的参数,表示一页显示*条数据
page:页面datagrid的参数,表示第*页

返回值是:
HashMap<K, V>类(HashMap中有三个key,返回给前端EasyUI会自动识别):
    total:Integer类,表示总共有*条数据
    page:Integer类,表示当前页面是第*页
    rows:ArrayList<E>类(当前一页的数据,比如说前端定了20条,这里就是根据参数查找对应的20条数据):
        每一个ArrayList里都是一个HashMap<K, V>类:
        key:数据库查出来的字段名,和前端表格绑定的<th data-options="field:'key的名字'">

 

四、页面请求

1. Java传值给AJAX success方法

// java后台
import java.io.PrintWriter;

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
PrintWriter out = null;
out = response.getWriter();
out.print("timeout");
out.flush();
$.ajax({
	success: function(data){
        // 这个data的值就是'timeout'
    }
});

2. Java传值给AJAX error方法

// Java后台
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html");
response.setHeader("sessionStatus", "timeout");
// 前端JS
$.ajax({
	error: function(jqXHR, textStatus, errorMsg){
		var sessionStatus = jqXHR.getResponseHeader('sessionStatus');// 值 = 'timeout'
	}
});

 

 

© 著作权归作者所有

共有 人打赏支持
吃兔纸不吐毛
粉丝 1
博文 54
码字总数 28636
作品 0
杭州
深入理解JVM学习笔记(一、总览)

1、JVM历史 2、JVM内存结构 3、JVM垃圾回收机制 4、JVM性能监控工具 5、JVM性能调优案例时间 6、JVM类文件结构 7、JVM类加载机制 8、JVM字节码执行引擎 9、JVM虚拟机编译及其运行时优化 10、...

jintaohahahaha ⋅ 05/28 ⋅ 0

用大白话告诉你啥是Java开发

Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此...

远方Java ⋅ 06/14 ⋅ 0

Java程序员必读书单,家族又添新成员

点击关注异步图书,置顶公众号 每天与你分享IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 有些革命出其不意地吸引了全世界的眼球。Twitter、Linux操作系统和...

异步社区 ⋅ 05/09 ⋅ 0

Java研发大学毕业后为何找不到理想的工作

现在大学生在大学学习Java技术,毕业后直接工作,我想在大家心里这只是再平常不过的事情了,可是为啥刚一毕业的Java应聘工程师会遭到各个研发企业的拒绝,这是刚毕业的每个大学生心中的疑虑,...

我爱编程学习 ⋅ 06/07 ⋅ 0

golang自定义路由控制实现(一)

    由于本人之前一直是Java Coder,在Java web开发中其实大家都很依赖框架,所以当在学习Golang的时候,自己便想着在Go开发中脱离框架,自己动手造框架来练习。通过学习借鉴Java的思想还...

1Day ⋅ 05/11 ⋅ 0

学编程,学java还是大数据、android?平均月薪23k以上告诉你方向

学编程,学java还是大数据、android?有不少同学在纠结中,最近有不少初学者来问到,学习大数据,学习spark,公司主要使用那些语言编写,每听到这一个问题,起码还是很不错的,证明你已经开始...

编程南风 ⋅ 05/30 ⋅ 0

JavaWeb07-HTML篇笔记(二)

1.1 案例一:使用JDBC完成CRUD的操作:1.1.1 需求: 对分类管理使用JDBC进行CRUD的操作. 1.1.2 分析:1.1.2.1 技术分析: 【JDBC的概述】 Ø JDBC:Java DataBase Connectivity Java数据库的连...

我是小谷粒 ⋅ 05/16 ⋅ 0

java思维导图90天训练营第一期,向架构师前进一步

作者寄语 嗨,大家好,我是java思维导图的小编吕一明。这次训练营为期90天,主要针对有些java基础,但是项目经验比较缺乏的程序员。内容涵盖了主流的spring,redis,rabbitmq,MongoDB等技术...

java思维导图 ⋅ 04/26 ⋅ 0

java基础io流——配角也风流(不求甚解)

本章简单介绍几个常见的io流派生。 1:数据操作流(操作基本类型数据的流)(理解) 代码示例: 2:内存操作流(理解) 用于处理临时存储信息的,程序结束,数据就从内存中消失。 代码示例: 注:查看...

潇潇漓燃 ⋅ 05/30 ⋅ 0

sharding-jdbc源码分析—准备工作

原文作者:阿飞Javaer 原文链接:https://www.jianshu.com/p/7831817c1da8 接下来对sharding-jdbc源码的分析基于tag为源码,根据sharding-jdbc Features深入学习sharding-jdbc的几个主要特性...

飞哥-Javaer ⋅ 05/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 25分钟前 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 42分钟前 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 今天 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 今天 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 9

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部