/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package cn.com.shxt.struts.action;
import java.io.File;
import java.io.FileOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import cn.com.shxt.struts.form.UploadFileForm;
/**
* MyEclipse Struts
* Creation date: 05-29-2007
*
* XDoclet definition:
* @struts.action path="/uploadFile" name="uploadFileForm" input="/upload/uploadFile.jsp" scope="request" validate="true"
*/
public class UploadFileAction extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)throws Exception {
UploadFileForm uploadFileForm = (UploadFileForm) form;
FormFile myFile = uploadFileForm.getTheFile();//获得上传的文件.
String contentType = myFile.getContentType();
String fileName = myFile.getFileName();
int fileSize = myFile.getFileSize();
byte[] fileData = myFile.getFileData();//按字节数组来获得上传文件的数据.
System.out.println("contentType: " + contentType);
System.out.println("File Name: " + fileName);
System.out.println("File Size: " + fileSize);
/**
* FileOutputStream提供的基本的文件写入能力.-文件输出流.
*
* FileOutputStream(File file)构造器使用File对象创建FileOutputStream对象.
* 可以使用write方法把字节发送给输出流.进行写文件.
* new File("c:\\" + fileName)-创建一个File对象.
*/
FileOutputStream out = new FileOutputStream(new File("c:\\" + fileName));
//调用write方法顺序地向文件写入内容.
out.write(fileData);
out.close();
/**
* 将文件的相关信息保存到用户的Session中,以供下载使用.以后要保存到数据库当中.
*/
HttpSession session = request.getSession();
session.setAttribute("contentType", contentType);
session.setAttribute("fileName", fileName);
session.setAttribute("fileSize", Integer.valueOf(fileSize));
return mapping.findForward("download");
}
}
系列化和反序列化的一个文砀


在IT行业中,序列化和反序列化是两个关键的概念,特别是在数据存储、网络通信和对象持久化等场景中。它们是计算机科学中的重要技术,帮助我们处理和传递数据。 序列化是指将对象的状态转化为可存储或可传输的形式,通常是一个二进制流或者文本格式。这个过程使得程序能够保存对象的状态,以便后续重新加载或在网络上传输。在Java中,我们可以使用`java.io.Serializable`接口来标记一个类是可序列化的,然后通过`ObjectOutputStream`将对象写入到文件或网络流中。在Python中,有多种序列化库如pickle、json等,它们提供了方便的方法将Python对象转换为字符串。 反序列化则是序列化的逆过程,即将序列化的数据恢复为原来的对象状态。这个过程在接收端或读取数据时发生,例如,从网络接收数据流后,我们需要用`ObjectInputStream`在Java中或相应的解析库在Python中将其还原为原来的对象。 序列化和反序列化对于以下应用场景至关重要: 1. **持久化存储**:对象的状态可以被保存到硬盘上,即使程序关闭,下次启动时也能恢复其状态。 2. **网络传输**:在分布式系统中,对象需要通过网络进行通信,序列化能让对象转换成可传输的格式。 3. **跨语言通信**:不同编程语言之间的数据交换,比如Java与Python之间,可以通过序列化后的标准格式(如JSON)进行。 4. **缓存机制**:序列化对象可以快速存入缓存,提高数据访问速度。 5. **配置文件**:配置文件通常以序列化的形式存在,便于阅读和修改。 在实际操作中,需要注意以下几个问题: 1. **安全性**:序列化可能会暴露敏感信息,因此需要谨慎处理。在反序列化时,必须确保数据来源可信,防止恶意的数据注入攻击。 2. **版本兼容性**:当类结构发生变化时,要考虑序列化的版本兼容性,以免旧的序列化数据无法正确反序列化。 3. **性能**:序列化和反序列化可能影响程序性能,因此在设计时应考虑效率,选择合适的序列化库或策略。 序列化和反序列化是软件开发中不可或缺的技术,它们在数据交换和持久化中起着核心作用。理解和掌握这些概念及其实现方式,对于提升软件系统的灵活性和稳定性具有重要意义。在实际工作中,我们需要根据具体需求选择合适的序列化库,并充分考虑安全性和性能优化。




























































- 1

















- 粉丝: 0
- 资源: 2
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 全桥LLC仿真模型在MATLAB Simulink中的实现与探究:含详细模型设计报告,全桥LLC仿真模型在MATLAB Simulink中的实现与探究:含详细模型设计报告,全桥LLC仿真模型(MTAL
- 北京大学-Deepseek系列
- 基于K永磁同步风力发电机的仿真模型研究:新能源风力发电机仿真系统与三十页万字报告详解,基于K永磁同步技术的风力发电机仿真模型研究:新能源风力发电机仿真、建模及三十万字深度报告分析,K永磁同步风力发电机
- 四轴飞行器是一种利用四个旋翼实现升力和推进的飞行器
- 六自由度机械臂RRT路径规划算法与梯形速度规划实现避障及动态曲线绘制,基于RRT算法与梯形速度规划的六自由度机械臂避障路径规划系统:算法实现、曲线分析与学习改进笔记,六自由度机械臂RRT路径规划算法梯
- Proteus 仿真MSP430实例之13 ADC.zip
- Proteus 仿真MSP430实例之14 wdt.zip
- Proteus 仿真MSP430实例之02 跑马灯.zip
- Proteus 仿真MSP430实例之03 数码管.zip
- Proteus 仿真MSP430实例之04 8位动态数码管.zip
- Proteus 仿真MSP430实例之12 LCD12864.zip
- Proteus 仿真MSP430实例之07 串口.zip
- Proteus 仿真MSP430实例之06 电子钟.zip
- Proteus 仿真MSP430实例之05 timerA.zip
- Proteus 仿真MSP430实例之08 LCD1602.zip
- Proteus 仿真MSP430实例之11 点阵.zip



评论0