<form action="upjsp" enctype="multipart/form-data" method="post">
<input type="file" name="file">
<input type="submit" value="确定">
</form>
上传页面upjsp
<%@page import="javaioFileWriter"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
import="javaio"
pageEncoding="UTF-8"%>
<%
/
协议头四行内容
45 -----------------------------7de231211204c4
80 Content-Disposition: form-data; name="file"; filename="xxtxt"
26 Content-Type: text/plain
2
标记文件结尾
-----------------------------7de231211204c4--
/
ServletInputStream sin = requestgetInputStream();
byte[] buffer = new byte[1024 8];
int length = 0, row = 0;
String mark = "";
String filename = "";
while ((length = sinreadLine(buffer, 0, bufferlength)) > 0) {
outprintln(length + " " + new String(buffer, 0, length, "UTF-8") + "<br>");
String s = new String(buffer, 0, length, "UTF-8");
if (row == 0)
mark = strim();
else if (sindexOf("filename=") > 0) {
int end = slastIndexOf("\"");
int start = ssubstring(0, end)lastIndexOf("\"");
filename = ssubstring(start + 1, end);
} else if (""equals(strim()))
break;
row ++;
}
outprintln("filename: " + filename + "<br>");
filename = requestgetRealPath("/") + "/" + filename;
FileOutputStream fout = new FileOutputStream(filename);
while ((length = sinreadLine(buffer, 0, bufferlength)) > 0) {
String s = new String(buffer, 0, length);
if (sstartsWith(mark))
break;
foutwrite(buffer, 0, length);
}
foutflush();
foutclose();
File f = new File(filename);
outprintln(fexists());
outprintln(fgetAbsolutePath());
%>1、提供HTML静态访问
web界面上最快的访问速度是什么?当然是最原始的HTML文件访问,对于其他语言 比如 jsp ,asp,php等等,他们首先要通过服务器解析成html之后在返回给访问者,如果我们能提供全部是htm来的页面,那么就能大大的降低服务器和数据库资源的利用和提高网站的并发,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法。当然实现这种方式大家比较了解的就是信息发布系统CMS,信息发布系统可以实现最简单的信息录入自动生成静态页面,还能具备频道管理、权限管理、自动抓取等功能,对于一个大型网站来说,拥有一套高效、可管理的CMS是必不可少的。
在后续的文章中我们会单独的使用jsp + servlet实现一个简单的信息发布系统
2、使用独立的服务器
为什么要把单独设置一个服务器?对于Web服务器来说,消耗的服务器资源是最多的,如果能把所有的资源放到一个单独的服务器中进行处理的话,可以降低提供页面访问请求的服务器系统压力,从而能进一步的提高web程序的并发所以在有条件的情况下最好能把放置到一个单独的服务器中
3、配置多台数据库服务器,多个数据库集群
集群(Cluster)技术是使用特定的连接方式,将价格相对较低的硬件设备结合起来,同时也能提供高性能相当的任务处理能力。
越是大型高并发的应用,数据库的压力就会越大,如果数据库 *** 作很频繁,数据库的瓶颈很快就能显现出来,这时一台数据库将很快无法满足应用,于是我们需要使用数据库集群。
数据库集群就是使用多个数据库服务器分担请求的压力,达到快速响应的目的
4、使用缓存
所谓的缓存就是把数据咱是放置到内存中,前台在请求的时候直接从内存中读取数据,而不需要去查询数据库或者读取文件等,这样就能做到最快的响应。网站架构和网站开发中的缓存是非常重要的。
目前有很多开源的缓冲实现方案,APC,File,SQLite,Memcache等等各种类库实现着不同的缓存方式,只有通过了解他们的实现方式,根据具体应用具体选择,才会使缓存系统发挥出最大的性能。
对于java开发来说,大名顶顶的 分布式缓存系统Memcache 可能是最好的选择,他提供一个基于Socket的访问方式,使得该缓存系统支持远程读写访问。尽管这个缓存的内容可能是存在内存中,也可能是存在文件内。
在现实社会中有很多地方使用到了Java,从电子商务网站到Androidapps,从科学应用到金融产品,例如电子交易系统,从类似Minecraft的游戏再到Eclipse,Netbeans和IntelliJ的桌面应用,从开源的资源库到J2MEapps等等。下面java课程带你一起详细了解java的应用领域。
1、安卓Apps
如果你想知道Java应用在哪里,你离答案并不远。打开你的安卓手机或者任何的App,它们完全是用有着谷歌AndroidAPI的Java编程语言编写的,这个API和JDK非常相似。前几年安卓刚开始起步而到今日已经很多Java程序员是安卓App的开发者。
2、在金融服务行业的服务器应用
Java在金融服务业有着很大应用。很多的全球性投资银行例如GoldmanSachs(高盛投资公司),Citigroup(花旗集团),和一些其他银行都用Java编写前台和后台的电子交易系统,结算、信息确认系统,数据处理项目和以及其他的项目。
Java被运用于编写服务端应用,但大多数没有前端,都是从一个服务端(上一级)接受数据,处理数据后发向其他的处理系统(下一级)。JavaSwing由于能开发出图形用户界面的客户端供交易者使用而备受欢迎,但是现在C#正在快速地取代Swing的市场,这让Swing倍有压力。
3、网站应用
Java同样也在电子商务和网站开发上有着广泛的运用。你可以运用很多RESTfull架构,这些架构是用SpringMVC,Struts20和类似的框架开发出来的。甚至简单的Servlet,JSP和Struts在各种政府项目也是备受欢迎,许多政府,医疗,保险,教育,国防和其他部门的网站都是建立在java之上的。
大概流程:1上传插件的选择:此篇博文选择的是jQuery的zyupload文件上传插件;
2上传请求发起后,java代码的处理:你是要将上传的只保存在服务器还是只保存在数据库还是说两者都采取。上传到服务器很简单,保存到数据库也很简单,但是此处需要考虑业务,保存在数据库时采用哪种保存方式(本博文业务来自于项目,因为数量巨多,故在数据库是通过保存的路径实现的,并非二进制流);
3保存在数据库后,在前段页面的回显功能。第一阶段:Java语言基础
★ Java语言基础
1、面向对象思维JAVASE
2、(类加载机制与反射,annotation,泛型,网络编程,多线程,IO,异常处理,常用API,面向对象,JAVA编程基础)
3、Java8新特性
JAVA战狼班第二阶段:数据库
★ 数据库
1、Oracle(SQL语句、SQL语句原理、SQL语句优化、表、视图
2、序列、索引、Oracle数据字典、Oracle 数据库PL/SQL开发
3、数据库设计原则、 MySQL 、 JDBC
第三阶段:Web基础
★ Web基础
1、HTML5(H5)基本文档结构、链接、列表、表格、表单;
2、CSS 基础语法、盒子模型、浮动布局、定位;
3、JavaScript语言基础、DOM 编程、事件模型等),JQuery,AJAX框架,XML,BootStrap组件
第四阶段:Java Web技术和主流框架
★ Java Web技术和主流框架
1、JSP&Servlet、struts2,hibernate4,spring4,JPA,maven
2、SpringData,SpringMVC,MyBatis,SpringSecurity,shiro,Nginx
第五阶段:Linux
★ Linux
1、Linux安装、熟悉Linux的基础命令、vi编辑器的使用、awk和sed命令使用、用户和组
2、文件及目录权限管理、使用ACL进行高级访问控制、网络配置和软件包安装、启动流程和服务管理
3、系统监控和日志管理、进程管理和计划任务、ssh远程登录、shell基础和shell脚本。
第六阶段:大数据技术(Hadoop和Spark)
★ 大数据技术(Hadoop和Spark)
1、Hadoop (Hadoop基础和环境搭建,HDFS体系结构,MapReduce;Hadoop的集群模式、HDFS联盟,利用ZooKeeper来实现Hadoop集群的HA(高可用性)功能
2、Yarn的任务调度机制,Apache Hive,Pig数据处理,集成Hadoop和Sqoop
3、Flume以及Apache Kafka来实现数据的交换,安装部署HBase,Storm)
4、Scala 语言(Scala环境搭建、Scala基础语法、模式匹配、重载与构造器、Map与reduce、元组、继承、StringContext,Option Some None,Tuple;集合方法和运算,future 对象同步处理和异步处理返回结果)
5、Spark(Spark搭建,Spark-shell 的使用,Spark-submit 提交应用, Spark的内核设计和实现,并对内核中的实现架构、运行原理进行详细的讲解;Spark生态体系中的各个组件,包括:Spark Core,Shark,Spark SQL和Spark Streaming等等)
第七阶段:项目
★ 项目
1、China-UCSP 项目 SSM(Spring+SpringMVC+MyBatis)
2、用户关系管理系统 S2SH+Maven+Nodejs+MySQL技术实战开发
3、电子商务交易平台 S2SH+Maven+Shiro+Oracle
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)