javaweb如何将文件保存到服务器的指定目录

javaweb如何将文件保存到服务器的指定目录,第1张

可以把文件目录配置在webxml文件的初始化参数中, 通过ServletAPI读取文件目录

比如

定义一个Properties文件保存相关配置

#可以上传文件的后缀名

extensions=pptx,docxdoc,txt,jpg,jar

#单个文件的大小1M

fileMaxSize=1048576

#总共上传文件大小5M

totalFileMaxSize=5242880

#文件保存路径

filePath=z:/temp

#临时文件路径

tempDir=z:/temp/temp

使用Listener在服务器启动时加载配置信息

ServletContext context = eventgetServletContext();

InputStream inputStream = context

getResourceAsStream("/WEB-INF/classes/file/upload/commons/uploadConfigproperties");

Properties properties = new Properties();

try {

propertiesload(inputStream);

contextsetAttribute("fileConfig", properties);

Systemoutprintln("properties = " + propertiessize());

} catch (IOException e) {

eprintStackTrace();

}

在你上传文件时通过配置文件读取路径保存

String filePath = ((Properties) thisgetServletContext()getAttribute("fileConfig"))

getProperty(FileUploadConstantsFILE_PATH);

Java8种值得学习优秀技能

1 Git

Git 是 Java 开发人员需要掌握的基础工具之一,每一位 Java 从业者都应该学会用它。Git 使用一套版本控制系统来管理各种项目集合。这是一个完全免费的开源系统,专注干非线性工作流、完整性和速度。分布式扩展:存储库可用来创建开发历史的副本。链接方法: Git 具有基于工具箱的设计,可提供定义明确的模型。

基干工具箱的设计:基于工具箱的设计可减少复合组件。

分布式扩展: 存储库可用来创建开发历史的副本。链接方法:Git 具有基于工具箱的设计,可提供定义明确的模型。

基干工具箱的设计:基于工具箱的设计可减少复合组件。

2Selenium

Java 中的 Selenium Web 驱动程序是 Java 开发人员在 2021 年应该了解的重要技术之一。

Selenium 提供了使用测试框架测试 Web 应用程序的一组工具; Selenium Web 驱动提供了一个开源API。它包括了用于 Web 应用程序的一些自动化特性。Selenium 的关键元素包括:

IDE(集成开发环境)

远程控制 /Selenium10

Web 控制器 /Selenium20/30

Selenium网格

3Jenkins

Jenkins 是源自 JAVA 编程的技术,其开源自动化的持续交付和集成可以自动化软件开发流程,支持多种版本控制工具。

Jenkins的插件可与另一种语言编写的代码集成。以下是你应该选择 Jenkins 的三大原因: 它提供了比其他软件更好的质量;其自动化系统可以管理集成;Jenkins的开发速度要快得多。

4用户友好的 Web 服务

REST 的全称是Representative Translation ofState(表述性状态转移),它代表了一种架构风格,是Java 开发人员必须掌握的知识。它提升了 Web 服务性能,还定义了可伸缩性和性能约束。这是 2022年Java 开发人员最理想的选项之一。

它的可重建 API用于 Web 服务开发中的通信需求。如果你了解 HTML、CSS 等,那么你将从RESTfulWeb 服务中获益匪浅。以下是 RESTful 服务的特性:

基干客户端 - 服务器的架构提供了服务器的管理、部署和托管等特性,还可以帮助用户使用服务和资源。它本质上是一种共享资源的共享计算模型。

5 Spring security

它的主要功能是应用程序身份验证。其 J2EE servlet规范和 EJB规范是JAVA 开发人员常用的两个关键安全特性。

Spring Security 支持多种身份验证模型,并与HTTP、Kerberos、JOSSO、CAS、LDAP 等技术集成。Spring Security 与 Java 深度关联,强烈建议Java 开发人员学习它。

6SpringBoot2

Spring Boot 发布了一个名为 Spring Boot 2的新版本。其中 Spring 框架负责控制,Spring Boot 负责生成具有常规配置的独立解决方案。

它主要依赖JAVA Baseline、BOM 材质和 cradle插件,其自动配置可提供安全性和响应性。它还提供了技术支持并改善了开发体验。它是 JAVA 程序员应了解的基本工具之一,其关键特性包括:

直接部署 Undertow、Jetty 或 Tomcat

减少构建配置,提供依赖项

在 Spring 中创建独立的应用程序

7Angular 或响应式 JS

ReactJS 是一个专门用于 UI开发的 JavaScript库,而 Angular 是一个框架。JAVA 开发人员应该很熟悉这两大关键技术了。微信搜索readdot,关注后回复编程资源,领取各种经典学习资料

Angular 2是开源 We 应用程序框架,Angular 的主要特性包括指令、范围、模板、注解、高级依赖项注入和子路由器: ReactJS 用于开发移动应用程序。ReactJS的主要特性包括与服务器的免费开源侧通信功能等。

8ApacheSpark 和 Kafka

Apache Spark 和 Kafka 是2021年Java开发人员一定要掌握的两项技术;它们在 2018 年底已发布稳定版本。Apache Spark 是用于集群计算的框架已开源。

Spark 提供了用于执行基本 1/0、调度和分派等任务的应用程序接口,并提供了同样开源的流处理平台。特别要提的是 Apache Kafka 代码是 Java 和 Scala 编写的。

Kafka 可以使用一些基本 API,例如 Producer APIConsumer APl、Connector API 和 Stream APl。

第1章 Java语言概述 1

实例001 输出“Hello World” 2

实例002 输出控制台传递的参数 2

实例003 输出由“”组成的三角形 3

实例004 输出符号表情 5

第2章 Eclipse开发工具 6

实例005 下载并运行Eclipse工具 7

实例006 为Eclipse安装汉化包 8

实例007 使用Eclipse注释代码 10

实例008 使用Eclipse格式化代码 11

实例009 安装WindowBuilder插件 12

实例010 开发计算器界面 14

第3章 Java语言基础 15

实例011 输出错误信息与调试信息 16

实例012 从控制台接收输入字符 16

实例013 重定向输出流实现程序日志 17

实例014 自动类型转换与强制类型转换 19

实例015 加密可以这样简单(位运算) 20

实例016 用三元运算符判断奇数和偶数 21

实例017 不用乘法运算符实现2×16 22

实例018 实现两个变量的互换

(不借助第3个变量) 23

第4章 流程控制 25

实例019 判断某一年是否为闰年 26

实例020 验证登录信息的合法性 27

实例021 为新员工分配部门 28

实例022 用switch语句根据消费

金额计算折扣 29

实例023 判断用户输入月份的季节 31

实例024 使用while循环语句与自增

运算符循环遍历数组 33

实例025 使用for循环输出杨辉三角形 34

实例026 使用嵌套循环在控制台上

输出九九乘法表 35

实例027 使用while循环计算1+

1/2!+1/3!…1/20! 36

实例028 使用for循环输出空心的菱形 38

实例029 终止循环体 39

实例030 循环体的过滤器 41

第5章 数组及其常用操作 43

实例031 获取一维数组的最小值 44

实例032 将二维数组中的行列互换 45

实例033 利用数组随机抽取幸运观众 47

实例034 用数组设置JTable表格的

列名与列宽 49

实例035 使用按钮控件数组实现

计算器界面 51

实例036 通过复选框控件数组实现

添加多个复选框控件 52

实例037 使用选择排序法对数组排序 53

实例038 使用冒泡排序法对数组排序 55

实例039 使用快速排序法对数组排序 57

实例040 使用直接插入法对数组排序 59

实例041 使用sort()方法对数组排序 61

实例042 反转数组中元素的顺序 63

第6章 面向对象入门 65

实例043 自定义图书类 66

实例044 温度单位转换工具 67

实例045 成员变量的默认初始化值 68

实例046 单例模式的应用 69

实例047 汉诺塔问题求解 70

实例048 编写同名的方法 71

实例049 构造方法的应用 72

实例050 统计图书的销售量 73

实例051 两只完全相同的宠物 74

实例052 重新计算对象的哈希码 76

实例053 使用字符串输出对象 77

实例054 Java对象的假克隆 78

实例055 Java对象的浅克隆 80

实例056 Java对象的深克隆 82

实例057 序列化与对象克隆 84

实例058 深克隆效率的比较 87

第7章 面向对象进阶 89

实例059 经理与员工的差异 90

实例060 重写父类中的方法 92

实例061 计算几何图形的面积 93

实例062 简单的汽车销售商场 95

实例063 使用Comparable接口自定

义排序 96

实例064 策略模式的简单应用 98

实例065 适配器模式的简单应用 100

实例066 普通内部类的简单应用 102

实例067 局部内部类的简单应用 103

实例068 匿名内部类的简单应用 104

实例069 静态内部类的简单应用 105

实例070 实例化Class类的几种方式 107

实例071 查看类的声明 108

实例072 查看类的成员 110

实例073 查看内部类信息 112

实例074 动态设置类的私有域 113

实例075 动态调用类中方法 115

实例076 动态实例化类 116

实例077 创建长度可变的数组 117

实例078 利用反射重写toString()方法 119

第8章 字符串与包装类 121

实例079 将数字格式化为货币字符串 122

实例080 货币金额大写格式 123

实例081 String类格式化当前日期 125

实例082 字符串大小写转换 126

实例083 字符与Unicode码的转换 128

实例084 判断用户名是否正确 129

实例085 用户名排序 130

实例086 判断网页请求与FTP请求 132

实例087 判断文件类型 133

实例088 判断字符串是否为数字 135

实例089 验证IP地址的有效性 136

实例090 鉴别非法电话号码 137

实例091 将字符串转换成整数 139

实例092 整数进制转换器 140

实例093 获取字符串中汉字的个数 141

实例094 批量替换某一类字符串 142

实例095 查看数字的取值范围 144

实例096 ASCII编码查看器 145

实例097 判断手机号的合法性 146

实例098 用字符串构建器追加字符 147

实例099 去掉字符串中的所有空格 148

实例100 Double类型的比较 149

第9章 Java集合类框架 151

范例101 用动态数组保存学生姓名 152

实例102 用List集合传递学生信息 153

实例103 Map集合二级联动 155

实例104 不重复随机数组排序 157

实例105 for循环遍历ArrayList 159

实例106 Iterator遍历ArrayList 159

实例107 ListIterator逆序遍历ArrayList 160

实例108 制作电子词典 161

实例109 制作手机电话簿 162

第10章 常用数学工具类 164

实例110 角度和弧度的转换 165

实例111 三角函数的使用 166

实例112 反三角函数的使用 167

实例113 双曲函数的使用 168

实例114 指数与对数运算 169

实例115 高精度整数运算 170

实例116 高精度浮点运算 171

实例117 七星彩号码生成器 173

实例118 大乐透号码生成器 174

第11章 错误处理 177

实例119 算数异常 178

实例120 数组下标越界异常 179

实例121 空指针异常 180

实例122 类未发现异常 181

实例123 非法访问异常 182

实例124 文件未发现异常 183

实例125 数据库操作异常 184

实例126 方法中抛出异常 185

实例127 方法上抛出异常 186

实例128 自定义异常类 187

实例129 捕获单个异常 188

实例130 捕获多个异常 189

第12章 输入/输出 191

实例131 显示指定类型的文件 192

实例132 以树结构显示文件路径 193

实例133 查找替换文本文件内容 194

实例134 设置Windows系统的文件

属性 195

实例135 文件批量重命名 196

实例136 快速批量移动文件 197

实例137 删除文件夹中的tmp文件 198

实例138 将文件保存到数据库 199

实例139 从数据库读取文件 200

实例140 窗体动态加载磁盘文件 201

实例141 删除文件夹中所有文件 202

实例142 创建磁盘索引文件 208

实例143 控制台记录器 205

实例144 防止创建多个字符串对象 206

实例145 合并多个文本文件 207

实例146 对大文件实现分割处理 208

实例147 将分割后的文件重新合并 209

实例148 读取属性文件单个属性值 210

实例149 向属性文件中添加信息 211

实例150 在复制文件时使用进度条 212

实例151 从XML文件中读取数据 213

实例152 读取Jar文件属性 214

实例153 电子通讯录 215

实例154 批量复制指定扩展名文件 217

实例155 分类保存文件 218

实例156 搜索指定文件夹中的文件 219

实例157 实现文件锁定功能 220

实例158 简单的投票软件 221

实例159 压缩所有文本文件 222

实例160 将压缩包解压到指定文件夹 223

实例161 压缩所有子文件夹 225

实例162 深层文件夹压缩包的释放 226

实例163 解决压缩包中文乱码 227

实例164 Apache实现文件解压缩 228

实例165 把窗体压缩成ZIP文件 229

实例166 解压缩Java对象 230

实例167 文件压缩为RAR文档 231

实例168 解压缩RAR压缩包 233

实例169 为RAR压缩包添加注释 234

实例170 获取压缩包详细文件列表 235

实例171 从RAR压缩包中删除文件 237

实例172 在压缩文件中查找字符串 238

实例173 重命名RAR压缩包中文件 239

实例174 创建自解压RAR压缩包 240

第13章 枚举类型与泛型 242

实例175 查看枚举类型的定义 243

实例176 枚举类型的基本特性 244

实例177 增加枚举元素的信息 245

实例178 选择合适的枚举元素 246

实例179 高效的枚举元素集合 248

实例180 高效的枚举元素映射 249

实例181 使用枚举接口遍历元素 250

实例182 使用泛型实现栈结构 251

实例183 自定义泛型化数组类 253

实例184 泛型方法与数据查询 254

实例185 使用通配符增强泛型 256

实例186 泛型化的折半查找法 257

第14章 Swing入门 259

实例187 从上次关闭位置启动窗体 260

实例188 始终在桌面最顶层显示窗体 261

实例189 设置窗体大小 262

实例190 根据桌面大小调整窗体大小 263

实例191 自定义最大化、最小化和

关闭按钮 265

实例192 禁止改变窗体的大小 267

实例193 指定窗体标题栏图标 267

实例194 设置闪烁的标题栏 269

实例195 实现带背景的窗体 270

实例196 背景为渐变色的主界面 271

实例197 随机更换窗体背景 273

实例198 椭圆形窗体界面 275

实例199 钻石形窗体 276

实例200 创建透明窗体 277

实例201 信息提示对话框 278

实例202 设置信息提示对话框的图标 279

实例203 指定打开对话框的文件类型 280

实例204 为保存对话框设置默认文件名 282

实例205 支持预览的文件选

择对话框 283

实例206 颜色选择对话框 285

实例207 信息输入对话框 286

实例208 定制信息对话框 287

实例209 拦截事件的玻璃窗格 289

实例210 简单的每日提示信息 290

实例211 震动效果的提示信息 292

实例212 制作圆形布局管理器 293

实例213 制作阶梯布局管理器 295

实例214 密码域控件简单应用 296

实例215 文本域设置背景 297

实例216 文本区设置背景 298

实例217 简单的字符统计工具 299

实例218 能预览的复选框 300

实例219 简单的投票计数软件 301

实例220 单选按钮的简单应用 302

实例221 能显示的组合框 303

实例222 使用滑块来选择日期 305

实例223 模仿记事本的菜单栏 308

实例224 自定义纵向的菜单栏 309

实例225 复选框与单选按钮菜单项 311

实例226 包含的弹出菜单 312

实例227 工具栏的实现与应用 314

实例228 修改列表项显示方式 315

实例229 列表项与提示信息 316

实例230 表头与列的高度设置 317

实例231 调整表格各列的宽度 319

实例232 设置表格的选择模式 321

实例233 为表头增添提示信息 323

实例234 单元格的粗粒度排序 325

实例235 实现表格的查找功能 326

实例236 应用网格布局设计计算

器窗体 327

第15章 多线程 329

实例237 查看线程的运行状态 330

实例238 查看JVM中的线程名 331

实例239 查看和修改线程优先级 333

实例240 休眠当前线程 335

实例241 终止指定线程 336

实例242 线程的插队运行 337

实例243 使用方法实现线程同步 339

实例244 使用特殊域变量实现线程同步 341

实例245 简单的线程通信 342

实例246 新建有返回值的线程 344

实例247 使用线程池优化多线程编程 346

实例248 哲学家的就餐问题 348

第16章 网络通信 350

实例249 获得内网的所有IP地址 351

实例250 获取网络资源的大小 352

实例251 解析网页中的内容 354

实例252 网络资源的单线程下载 355

实例253 网络资源的多线程下载 357

实例254 下载网络资源的断点续传 359

实例255 建立服务器套接字 362

实例256 建立客户端套接字 363

实例257 设置等待连接的超时时间 364

实例258 获得Socket信息 365

实例259 接收和发送Socket信息 367

实例260 关闭Socket缓冲 369

实例261 使用Socket通信 371

实例262 防止Socket传递汉字乱码 375

实例263 使用Socket传递对象 377

实例264 使用Socket传输 379

实例265 使用Socket传输音频 381

实例266 使用Socket传输视频 384

实例267 一个服务器与一个客户端

通信 385

实例268 一个服务器与多个客户端

通信 387

实例269 客户端一对多通信 389

实例270 客户端一对一通信 391

实例271 基于Socket的数据库编程 393

实例272 使用Proxy创建代理服务器 396

实例273 使用ProxySelector选择

代理服务器 397

实例274 聊天室服务器端 399

实例275 聊天室客户端 401

第17章 数据库操作 405

实例276 JDBC连接MySQL数据库 406

实例277 连接SQL Server 2005数据库 407

实例278 JDBC连接Oracle数据库 408

实例279 获取SQL Server指定数据

库中的数据表信息 409

实例280 获取MySQL指定数据库

中的数据表名称 411

实例281 查看数据表结构 412

实例282 动态维护投票数据库 414

实例283 SQL Server数据备份 416

实例284 SQL Server数据恢复 419

实例285 MySQL数据备份 422

实例286 MySQL数据恢复 424

实例287 动态附加数据库 425

实例288 生成SQL数据库脚本 426

实例289 表中字段的描述信息 429

实例290 将员工信息添加到数据表 430

实例291 添加数据时使用数据验证 431

实例292 插入用户登录日志信息 432

实例293 生成有规律的编号 433

实例294 生成无规律的编号 435

实例295 插入数据时过滤危险字符 436

实例296 复选框保存到数据库 437

实例297 把数据复制到另一张表中 438

实例298 批量插入数据 439

实例299 更新指定记录 440

实例300 在删除数据时给出提示信息 442

使用File类中方法就可以实现

File[] listFiles() 返回目录下所有的文件

File file=new File("你的ftp的根路径");

File files[]=filelistFiles();

for(int i=0;i<fileslength;i++){

Systemoutprintln(files[i]getName() );

}

如果要获取所有的文件和文件夹可以使用String[] list()方法。返回的是String类型的数组,其中所有文件和文件夹的相对路径表示。

补充---

如果那样的话那么就需要在你的ftp服务器上做一个socket服务端,你通过一个客户端连接上去。然后服务器端将获取的文件列表数组传递给你,就可以了。如果想直接获取别人的机器的文件列表是很难的,基本上是不可能的,当然是出于安全的考虑

文件从本地到服务器的功能,其实是为了解决目前浏览器不支持获取本地文件全路径。不得已而想到上传到服务器的固定目录,从而方便项目获取文件,进而使程序支持EXCEL批量导入数据。

java中文件上传到服务器的指定路径的代码:

在前台界面中输入:

<form method="post" enctype="multipart/form-data"  action="/manage/excelImportdo">

请选文件:<input type="file"  name="excelFile">

<input type="submit" value="导入" onclick="return impExcel();"/>

</form>

action中获取前台传来数据并保存

/

excel 导入文件

@return

@throws IOException

/

@RequestMapping("/usermanager/excelImportdo")

public String excelImport(

String filePath,

MultipartFile  excelFile,HttpServletRequest request) throws IOException{

loginfo("<<<<<<action:{} Method:{} start>>>>>>","usermanager","excelImport" );

if (excelFile != null){

String filename=excelFilegetOriginalFilename();

String a=requestgetRealPath("u/cms/www/201509");

SaveFileFromInputStream(excelFilegetInputStream(),requestgetRealPath("u/cms/www/201509"),filename);//保存到服务器的路径

}

loginfo("<<<<<<action:{} Method:{} end>>>>>>","usermanager","excelImport" );

return "";

}

/

将MultipartFile转化为file并保存到服务器上的某地

/

public void SaveFileFromInputStream(InputStream stream,String path,String savefile) throws IOException

{      

FileOutputStream fs=new FileOutputStream( path + "/"+ savefile);

Systemoutprintln("------------"+path + "/"+ savefile);

byte[] buffer =new byte[10241024];

int bytesum = 0;

int byteread = 0;

while ((byteread=streamread(buffer))!=-1)

{

bytesum+=byteread;

fswrite(buffer,0,byteread);

fsflush();

}

fsclose();

streamclose();

}

第1章 Java网络编程入门 1

11 进程之间的通信 1

12 计算机网络的概念 3

13 OSI参考模型 5

14 TCP/IP参考模型和TCP/IP协议 8

141 IP协议 11

142 TCP协议及端口 14

143 RFC简介 15

144 客户/服务器通信模式 16

15 用Java编写客户/服务器程序 17

151 创建EchoServer 18

152 创建EchoClient 20

16 小结 22

17 练习题 23

第2章 Socket用法详解 25

21 构造Socket 25

211 设定等待建立连接的超时时间 26

212 设定服务器的地址 26

213 设定客户端的地址 27

214 客户连接服务器时可能抛出的异常 27

22 获取Socket的信息 30

23 关闭Socket 32

24 半关闭Socket 33

25 设置Socket的选项 38

251 TCP_NODELAY选项 38

252 SO_RESUSEADDR选项 38

253 SO_TIMEOUT选项 39

254 SO_LINGER选项 42

255 SO_RCVBUF选项 44

256 SO_SNDBUF选项 45

257 SO_KEEPALIVE选项 45

258 OOBINLINE选项 45

259 服务类型选项 45

2510 设定连接时间、延迟和带宽的相对重要性 46

26 发送邮件的SMTP客户程序 47

27 小结 51

28 练习题 52

第3章 ServerSocket用法详解 55

31 构造ServerSocket 55

311 绑定端口 55

312 设定客户连接请求队列的长度 56

313 设定绑定的IP地址 58

314 默认构造方法的作用 58

32 接收和关闭与客户的连接 59

33 关闭ServerSocket 60

34 获取ServerSocket的信息 60

35 ServerSocket选项 62

351 SO_TIMEOUT选项 62

352 SO_REUSEADDR选项 63

353 SO_RCVBUF选项 64

354 设定连接时间、延迟和带宽的相对重要性 64

36 创建多线程的服务器 65

361 为每个客户分配一个线程 65

362 创建线程池 67

363 使用JDK类库提供的线程池 72

364 使用线程池的注意事项 74

37 关闭服务器 76

38 小结 80

39 练习题 81

第4章 非阻塞通信 83

41 线程阻塞的概念 83

411 线程阻塞的原因 83

412 服务器程序用多线程处理阻塞通信的局限 84

413 非阻塞通信的基本思想 85

42 javanio包中的主要类 87

421 缓冲区Buffer 88

422 字符编码Charset 90

423 通道Channel 90

424 SelectableChannel类 92

425 ServerSocketChannel类 93

426 SocketChannel类 93

427 Selector类 96

428 SelectionKey类 97

43 服务器编程范例 100

431 创建阻塞的EchoServer 100

432 创建非阻塞的EchoServer 103

433 在EchoServer中混合用阻塞模式与非阻塞模式 110

44 客户端编程范例 114

441 创建阻塞的EchoClient 114

442 创建非阻塞的EchoClient 116

443 创建非阻塞的PingClient 120

45 小结 126

46 练习题 127

第5章 创建非阻塞的HTTP服务器 129

51 HTTP协议简介 129

511 HTTP请求格式 129

512 HTTP响应格式 132

513 测试HTTP请求 133

52 创建非阻塞的HTTP服务器 137

521 服务器主程序:

HttpServer类 137

522 具有自动增长的缓冲区的ChannelIO类 138

523 负责处理各种事件的

Handler接口 140

524 负责处理接收连接就绪

事件的AcceptHandler类 140

525 负责接收HTTP请求和发送HTTP响应的RequestHandler类 141

526 代表HTTP请求的Request类 143

527 代表HTTP响应的Response类 145

528 代表响应正文的Content接口及其实现类 147

529 运行HTTP服务器 149

53 小结 150

54 练习题 151

第6章 客户端协议处理框架 153

61 客户端协议处理框架的主要类 153

62 在客户程序中运用协议处理框架 154

621 URL类的用法 154

622 URLConnection类的用法 156

63 实现协议处理框架 160

631 创建EchoURLConnection类 161

632 创建EchoURLStreamHandler及工厂类 162

633 创建EchoContentHandler类及工厂类 163

634 在EchoClient类中运用ECHO协议处理框架 165

64 小结 166

65 练习题 167

第7章 用Swing组件展示HTML文档 169

71 在按钮等组件上展示HTML文档 170

72 用JEditorPane组件创建简单的浏览器 171

73 小结 179

74 练习题 179

第8章 基于UDP的

数据报和套接字 181

81 UDP协议简介 181

82 DatagramPacket类 184

821 选择数据报的大小 185

822 读取和设置DatagramPacket的属性 185

823 数据格式的转换 186

824 重用DatagramPacket 187

83 DatagramSocket类 189

831 构造DatagramSocket 189

832 接收和发送数据报 190

833 管理连接 190

834 关闭DatagramSocket 191

835 DatagramSocket的选项 191

836 IP服务类型选项 193

84 DatagramChannel类 193

841 创建DatagramChannel 194

842 管理连接 194

843 用send()方法发送数据报 194

844 用receive()方法接收数据报 195

845 用write()方法发送数据报 198

846 用read()方法接收数据报 199

85 组播Socket 202

851 MulticastSocket类 205

852 组播Socket的范例 207

86 小结 209

87 练习题 210

第9章 对象的序列化与反序列化 213

91 JDK类库中的序列化API 213

92 实现Serializable接口 218

921 序列化对象图 220

922 控制序列化的行为 222

923 readResolve()方法在单例类中的运用 229

93 实现Externalizable接口 231

94 可序列化类的不同版本的序列化兼容性 233

95 小结 235

96 练习题 236

第10章 Java语言的反射机制 239

101 Java Reflection API简介 239

102 在远程方法调用中运用反射机制 244

103 代理模式 248

1031 静态代理类 248

1032 动态代理类 250

1033 在远程方法调用中

运用代理类 253

104 小结 258

105 练习题 259

第11章 RMI框架 261

111 RMI的基本原理 262

112 创建第一个RMI应用 264

1121 创建远程接口 264

1122 创建远程类 265

1123 创建服务器程序 267

1124 创建客户程序 269

1125 运行RMI应用 270

113 远程对象工厂设计模式 272

114 远程方法中的参数与返回值传递 277

115 回调客户端的远程对象 281

116 远程对象的并发访问 286

117 分布式垃圾收集 289

118 远程对象的equals()、hashCode()和clone()方法 294

119 使用安全管理器 294

1110 RMI应用的部署及类的动态加载 295

1111 远程激活 297

1112 小结 303

1113 练习题 304

第12章 通过JDBC API访问数据库 305

121 JDBC的实现原理 306

122 安装和配置MySQL数据库 308

123 JDBC API简介 310

124 JDBC API的基本用法 314

1241 处理字符编码的转换 317

1242 把连接数据库的各种属性放在配置文件中 318

1243 管理Connection、Statement和ResultSet对象的生命周期 321

1244 执行SQL脚本文件 326

1245 处理SQLException 328

1246 输出JDBC日志 329

1247 获得新插入记录的主键值 329

1248 设置批量抓取属性 330

1249 检测驱动器使用的JDBC版本 330

12410 元数据 331

125 可滚动及可更新的结果集 333

126 行集 339

127 调用存储过程 346

128 处理Blob和Clob类型数据 347

129 控制事务 351

1291 事务的概念 351

1292 声明事务边界的概念 353

1293 在mysqlexe程序中声明事务 354

1294 通过JDBC API声明事务边界 356

1295 保存点 357

1296 批量更新 358

1297 设置事务隔离级别 360

1210 数据库连接池 362

12101 创建连接池 363

12102 DataSource数据源 369

1211 小结 371

1212 练习题 372

第13章 基于MVC和RMI的分布式应用 375

131 MVC设计模式简介 375

132 store应用简介 377

133 创建视图 381

134 创建控制器 389

135 创建模型 390

136 创建独立应用 394

137 创建分布式应用 395

138 小结 398

139 练习题 398

第14章 通过JavaMail API收发邮件 401

141 E-mail协议简介 401

1411 SMTP简单邮件传输协议 401

1412 POP3邮局协议 402

1413 接收邮件的新协议IMAP 402

1414 MIME简介 403

142 JavaMail API简介 403

143 建立JavaMail应用程序的开发环境 405

1431 获得JavaMail API的类库 405

1432 安装和配置邮件服务器 406

144 创建JavaMail应用程序 408

145 身份验证 412

146 URLName类 416

147 创建和读取复杂电子邮件 418

1471 邮件地址 419

1472 邮件头部 420

1473 邮件标记 421

1474 邮件正文 422

148 操纵邮件夹 427

149 小结 432

1410 练习题 433

第15章 安全网络通信 435

151 SSL简介 435

1511 加密通信 436

1512 安全证书 436

1513 SSL握手 437

1514 创建自我签名的安全证书 438

152 JSSE简介 439

1521 KeyStore、KeyManager与TrustManager类 442

1522 SSLContext类 443

1523 SSLServerSocketFactory类 444

1524 SSLSocketFactory类 444

1525 SSLSocket类 444

1526 SSLServerSocket类 447

1527 SSLEngine类 448

153 创建基于SSL的安全服务器和安全客户 453

154 小结 457

155 练习题 457

第16章 CORBA简介 459

161 创建IDL接口 460

162 创建IDL接口的实现类 460

163 创建服务器程序 461

164 创建客户程序 462

165 运行CORBA程序 463

166 小结 464

167 练习题 465

第17章 Web服务简介 467

171 SOAP简介 467

172 建立Apache AXIS环境 469

173 在Tomcat上发布

Apache-AXIS Web应用 470

174 创建SOAP服务 471

1741 创建提供SOAP

服务的Java类 471

1742 创建SOAP服务的

发布描述符文件 471

175 管理SOAP服务 472

1751 发布SOAP服务 472

1752 删除SOAP服务 473

176 创建和运行SOAP

客户程序 473

177 发布JWS服务 476

178 小结 476

179 练习题 477

附录A 本书范例的运行方法 479

A1 本书所用软件的下载地址 479

A2 部分软件的安装 479

A21 安装JDK 480

A22 安装ANT 480

A23 安装Tomcat 481

A3 编译源程序 481

A4 运行客户/服务器程序 482

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » javaweb如何将文件保存到服务器的指定目录

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情