try

[功能集锦] 001 - java下载文件

吃可爱长大的小学妹 提交于 2019-12-18 16:40:09
@RequestMapping("/downloadxls.action") public void downloadxls(HttpServletRequest request, HttpServletResponse response) { //获取请求参数 Map<String, Object> params = ParamsUtil.getParams(request); String contextPath = request.getSession().getServletContext().getRealPath(File.separator + "report"); String excelName = xxxxx; String excelFullName = contextPath + File.separator + excelName + ".xls"; InputStream inStream = null, fileInStream = null; ServletOutputStream outStream = null; int byteRead; try { fileInStream = new FileInputStream(excelFullName); inStream = new BufferedInputStream(fileInStream

springboot 读取resources下的 properties配置文件

巧了我就是萌 提交于 2019-12-18 11:18:27
主要用到了spring框架的ClassPathResource,可以直接获取resources目录下的文件,而不用费半天劲写绝对路径了。 import org.springframework.core.io.ClassPathResource; import java.io.*; import java.util.Properties; public class PropertitesUtil { public static Properties props; static { try { readPropertiesFile("/model.properties"); } catch (IOException e) { e.printStackTrace(); } } public static Properties readPropertiesFile(String filePath) throws FileNotFoundException, IOException { try { ClassPathResource classPathResource = new ClassPathResource(filePath); InputStream inputStream =classPathResource.getInputStream(); props = new

HttpClient详解

谁说胖子不能爱 提交于 2019-12-18 09:53:27
Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性。因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入。 一、简介 HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient已经应用在很多的项目中,比如Apache Jakarta上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。 下载地址: http://hc.apache.org/downloads.cgi 二、特性 1. 基于标准、纯净的 Java 语言。实现了Http1.0和Http1.1 2. 以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)。 3. 支持HTTPS协议。 4. 通过Http代理建立透明的连接。 5.

利用JDBC连接MySQL并使用MySQL

∥☆過路亽.° 提交于 2019-12-18 03:38:53
driver为JDBC的驱动。 url为数据库的地址。 usrname和password分别为数据库的用户名和密码。 Connection类用来连接MySQL。 PreparedStatement类用来预编译sql语句,并可以执行。有的地方也用Statement。因为PreparedStatement继承了Statement,并且在执行多次查询更新的时候比Statement更快。PreparedStatement的第一次执行消耗是很高的,它的性能体现在重复执行。比如当我使用PreparedStatement来进行查询的时候,JDBC会发送一个网络请求来编译这个查询语句,在执行时会产生另外一个网络请求来执行。但是当我执行多次相同的查询的时候,使用PreparedStatement只会产生一个网络请求来执行语句。但如果使用Statement还会产生一个网络请求来编译语句。 ResultSet用来存储结果,一般用到select语句时用。 import java.sql.*; class MySQL { private static final String driver = "com.mysql.jdbc.Driver"; private static final String url = "jdbc:mysql://localhost:3306/school"; private

黑马程序员-Java基础之异常

こ雲淡風輕ζ 提交于 2019-12-18 03:30:11
异 常 :就是不正常。程序在运行时出现的不正常情况。其实就是程序中出现的问题。这个问题按照面向对象思想进行描述,并封装成了对象。因为问题的产生有产生的原因、有问题的名称、有问题的描述等多个属性信息存在。当出现多属性信息最方便的方式就是将这些信息进行封装。异常就是java按照面向对象的思想将问题进行对象封装。这样就方便于操作问题以及处理问题。 出现的问题有很多种,比如角标越界,空指针等都是。就对这些问题进行分类。而且这些问题都有共性内容比如:每一个问题都有名称,同时还有问题描述的信息,问题出现的位置,所以可以不断的向上抽取。形成了 异常体系 。 --------java.lang.Throwable : Throwable : 可抛出的。 |--Error : 错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。 |--Exception : 异常,可以有针对性的处理方式 无论是错误还是异常,它们都有具体的子类体现每一个问题,它们的子类都有一个共性,就是都 以父类名才作为子类的后缀名 。 这个体系中的所有类和对象都具备一个独有的特点;就是可抛性。 可抛性的体现: 就是这个体系中的类和对象都可以被throws和throw两个关键字所操作。 ------------------------------------------------------

python初学之异常处理

不打扰是莪最后的温柔 提交于 2019-12-17 21:36:50
上一个博客里面介绍了文件相关操作及os模块简单操作,今天来介绍一下异常处理,主要从以下几个方面进行展开: 1、什么是异常 2、异常处理机制 3、触发异常 4、用户自定义异常 01 什么是异常? 1.首先呢,我们需要了解Error(错误) 和 Exception(异常) 的区别: 1)Error (错误) 是系统中的错误, 程序员是不能改变和处理 的, 如系统崩溃,内存空 间不足,方法调用栈溢等。 遇到这样的错误,建议让程序终止。 2)Exception (异常 )表示 程序可以处理的异常 ,可以捕获且可能恢复。 遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。 2. 常见的异常 还有类似以下异常 都是比较常见的,值得引起注意: AttributeError(属性错误) 、 IOError(输入输出异常) 、 ImportError(模块导入错误) 、 IndexError(索引错误) 、 SyntaxError(语法错误) 、 TypeError(类型错误) 、 ValueError(值错误) 、 KeyError(元素不存在) 、 NameError(命名错误) • IndentationError : 缩进错误 • KeyboardInterrupt : Ctrl+C 被按下 • UnboundLocalError : 有同名的全局变量 02 异

缓存工厂之Redis缓存

不想你离开。 提交于 2019-12-17 06:49:30
这几天没有按照计划分享技术博文,主要是去医院了,这里一想到在医院经历的种种,我真的有话要说;医院里的医务人员曾经被吹捧为美丽+和蔼+可亲的天使,在经受5天左右相互接触后不得不让感慨;遇见的有些人员在挂号队伍犹如长龙的时候坐在收费窗口玩手机,理由是自己是换班的差几分钟才上班呢;遇见态度极其恶劣的主任医师,做咨询几个问题声音马上提高并言语中携带讽刺话语;还有其他几个遇见哈哈这里就不多说了,可能是某些医务人员觉得多您个不少,我有的是客源,所以个别是这种态度吧,还是市医院真不知道怎么混进去的。 以上是个人的看法,下面来正式分享今天的文章吧: 。搭建Redis服务端,并用客户端连接 。封装缓存父类,定义Get,Set等常用方法 。定义RedisCache缓存类,执行Redis的Get,Set方法 。构造出缓存工厂调用方法 下面一步一个脚印的来分享: 。搭建Redis服务端,并用客户端连接 首先,咋们去这个地址下载安装文件 https://github.com/dmajkic/redis/downloads ,我这里的版本是:redis-2.4.5-win32-win64里面有32位和64位的执行文件,我这里服务器是64位的下面给出截图和用到部分程序的说明: 现在,咋们直接可以用鼠标双击redis-server.exe这个应用程序,这样就打开了redis服务窗体

JDBC技术总结(一)

蓝咒 提交于 2019-12-17 04:02:34
1. JDBC简介 SUN公司为了简化、统一对 数据库 的操作,定义了一套 Java 操作数据库的规范,称之为JDBC,JDBC不能直接操作数据库,JDBC通过接口加载数据库的驱动,然后操作数据库。JDBC:Java Data Base Connectivity,它主要由接口组成。组成JDBC的2个包为java.sql和javax.sql。开发JDBC应用需要这2个包的支持外,还需要导入相应JDBC的数据库实现(即数据库驱动)。 2. JDBC快速入门 编程从user表中读取数据,并打印在控制台窗口中。 2.1 搭建实验环境 create database test Character set utf8 collate utf8_general_ci; use test create table user ( id int primary Key, name varchar(20), password varchar(20), email varchar(20), birthday Date ); insert into user(id,name,password,email,birthday) values(1,'zw','123','zw@sina.com','1990-09-19'); insert into user(id,name,password,email

mysql数据库第三天

帅比萌擦擦* 提交于 2019-12-17 03:43:38
##jdbc java database connectivty ==>使用java来操作数据库 jdbc:其实就是提供了一些方法与接口(规范) ==>实现是由数据库的厂商来实现 (驱动包) 驱动包:也就是连接数据的提供的一个jar 2.jdbc 连接数据库的一个步骤 1.导入jar包 2.通过反射来加载驱动 3.得到连接对象 connection 4.得到发送sql 对象(交通工具) 5.得到返回的结果 6.关闭资源 从下往上进行关闭 注意点:所有的jar包都是导入的是 java.sql.* package com . offcn . day09 . test ; import java . sql . * ; public class Test { public static void main ( String [ ] args ) { //System.out.println("第一个java项目"); /* 2.jdbc 连接数据库的一个步骤 1.导入jar包 2.通过反射来加载驱动 3.得到连接对象 connection 4.得到发送sql 对象(交通工具) 5.得到返回的结果 6.关闭资源 从下往上进行关闭*/ Connection conn = null ; Statement sta = null ; ResultSet rs = null ; try {

并发之lock的condition接口

浪尽此生 提交于 2019-12-17 01:35:37
13.死磕Java并发-----J.U.C之Condition 12.Condition使用总结 11.Java并发编程系列之十七:Condition接口 === 13.死磕Java并发-----J.U.C之Condition 此篇博客所有源码均来自JDK 1.8 在没有Lock之前,我们使用synchronized来控制同步,配合Object的wait()、notify()系列方法可以实现等待/通知模式。在Java SE5后,Java提供了Lock接口,相对于Synchronized而言,Lock提供了条件Condition,对线程的等待、唤醒操作更加详细和灵活。下图是Condition与Object的监视器方法的对比(摘自《Java并发编程的艺术》): Condition提供了一系列的方法来对阻塞和唤醒线程: await() :造成当前线程在接到信号或被中断之前一直处于等待状态。 await(long time, TimeUnit unit) :造成当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。 awaitNanos(long nanosTimeout) :造成当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。返回值表示剩余时间,如果在nanosTimesout之前唤醒,那么返回值 = nanosTimeout - 消耗时间,如果返回值 <=