文件的下载和Svn的介绍使用-svn下载到本地

一、文件的下载

开发环境搭建:

 创建一个web项目,加入Apache的commons-fileupload文件上传组件的相关Jar包,如下图所示:

文件的下载和Svn的介绍使用-svn下载到本地

使用:

文件的下载中主要使用commons-io.jar包中的IOUtils工具类中的copy()方法进行下载的操作(不同的浏览器下载的确认框可能不同)。

文件的下载和Svn的介绍使用-svn下载到本地
火狐浏览器下载确认框
文件的下载和Svn的介绍使用-svn下载到本地
ie浏览器下载确认框

控制层代码示例:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //创建service层对象 StudentService stuService = new StudentServiceImpl(); //获取请求参数中的id值 int id = Integer.parseInt(request.getParameter(“id”)); //调用service Student stu = stuService.findById(id); /* *获取文件存放的位置 *获取文件的输入流 */ String realPath = this.getServletContext().getRealPath(“/updownload”); String filePath=realPath+”/”+stu.getPhotname(); File file = new File(filePath); InputStream in = new FileInputStream(file); //设置请求头中文件的长度 response.setContentLength((int)file.length()); //设置请求头中文件的类型 response.setContentType(stu.getContentType()); //获取文件的真实名字 String realname = stu.getRealname(); //获取请求中的信息 String userAgent = request.getHeader(“User-Agent”); //判断浏览器的类型,解决文件下载中中文乱码的问题 true解决ie浏览器 false时解决其他浏览器 if(userAgent.indexOf(“msie”)>=0 || userAgent.indexOf(“like”)>=0){ realname=URLEncoder.encode(realname,”utf-8″); }else{ realname=new String(realname.getBytes(“utf-8″),”iso8859-1”); } //设置请求头,声明处理的类型为文件 response.setHeader(“Content-disposition”, “attachment;filename=”+realname); //获取输出流对象 ServletOutputStream out = response.getOutputStream(); //拷贝服务器文件到客户端 IOUtils.copy(in, out); /* * 关闭资源 */ out.close(); in.close(); }

注意:

1.下载时中文乱码的解决

//获取请求中的信息 String userAgent = request.getHeader(“User-Agent”); //判断浏览器的类型,解决文件下载中中文乱码的问题 true解决ie浏览器 false时解决其他浏览器 if(userAgent.indexOf(“msie”)>=0 || userAgent.indexOf(“like”)>=0){ realname=URLEncoder.encode(realname,”utf-8″); }else{ realname=new String(realname.getBytes(“utf-8″),”iso8859-1”); }

2.在编写下载代码时需要指定请求头信息

//动态获取tomcat中项目中资源文件的物理存放路径 String realPath = this.getServletContext().getRealPath(“/updownload”); String filePath=realPath+”/”+stu.getPhotname(); File file = new File(filePath);InputStream in = new FileInputStream(file); //设置请求头中文件的长度 response.setContentLength((int)file.length()); //设置请求头中文件的类型 response.setContentType(stu.getContentType()); //设置请求头,声明处理的类型为文件 response.setHeader(“Content-disposition”, “attachment;filename=”+realname);

二、Svn的介绍

1.什么是版本控制

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况以及回溯的系统。 任何类型的文件都可以进行版本控制。

2. 常用版本管理软件

①VSS:Microsoft 提供,Window 平台,小型开发团队所适合的工具。

②CVS:开源工具,跨平台。绝大多数 CVS 服务已改用 SVN。CVS 已停止维护

③ SVN(Subversion):开源,跨平台,在 CVS 的基础上开发。使用企业众多, 稳定安全,操作简单。集中式版本控制系统。

④ GIT:开源的分布式版本控制系统,用以有效高速的处理从很小到非常大的项 目版本管理。(GITHUB 是一个用 GIT 做版本控制的项目托管平台,B/S 架构。 放到 GITHUB 上的代码需要开源,并且是互联网开发)

文件的下载和Svn的介绍使用-svn下载到本地

3.什么是集中式

将项目等部署到同一台机器上,对机器性能要求比较高,一般会用多台机器备份,否则,如果机器出现死机等状况,整个项目将不能运行。

4.什么是分布式

将一个项目分成几块,分别在不同的机器上运行,相比较与集中式,对机器要求有所下降。

客户端 subclipse使用:

1.选中项目右键——–team—-share project—-选择 SVN

2. 提交版本位置、用户名、密码都会由相关服务器管理人员提供。

文件的下载和Svn的介绍使用-svn下载到本地

①branches:用来使用新技术开发时进行测试时使用

②tags:标签

③trunk:主干,实际开发中代码没有问题时,把代码存储在trunk中

4.可以选择记住密码,避免多次的重复输入。

5. 提交后会跳到 team synchronizing view,还需要真正同步代码到服务器,同 步之前可以选择哪些代码不需要使用 svn 进行管理

6. 提交成功后可以观察版本库容量的变化

7. 提交成功后客户端项目会显示专门的标记,并且增加了相应的.svn 项目,来 存储操作记录

文件的下载和Svn的介绍使用-svn下载到本地

7. 断开和服务器连接

8.客户端从 SVN 检出项目 a) new— Project…——–SVN—-从 SVN 检出项目

9. 更新和提交操作

a) 更新将服务器最新代码更新到本地;提交是将本地最新代码提交到服务器

b) 提交之前要先更新,因为可能其他程序员期间以及提交了最新代码到服务器

c) 提交一定要给出注释,对提交内容进行说明,作为以后辨别版本的主要依据。

10 解决冲突

① 模拟两个用户对一个类进行修改,分别修改相同的方法和增加一个新方法

② 更新后出现冲突,和冲突方沟通后,对冲突文件给出最终解决方案

③ 还需要 team—-标记为解决,相应冲突文件为自动删除,当前文件由冲突状态 转换为已修改状态,待提交

11. 还原没有提交的代码

team—-还原

12. 还原已经提交的代码

①如果最新的代码出现问题,可以直接修改,也可以回滚到之前的某个历史版 本,直接使用或者进行修改

②查看资源历史记录

③ 根据注释确定要还原的版本,无法确定可以查看或者比较代码

④ 确定版本后,右键选择”从修订班 x 回复更改”

⑤ 可能出现冲突,解决后提交代码到服务器

免责声明:文章内容来自互联网,本站仅提供信息存储空间服务,真实性请自行鉴别,本站不承担任何责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:文件的下载和Svn的介绍使用-svn下载到本地 https://www.bxbdf.com/a/144664.shtml

上一篇 2023-08-02 14:23:11
下一篇 2023-08-02 14:24:25

猜你喜欢

联系我们

在线咨询: QQ交谈

邮件:362039258#qq.com(把#换成@)

工作时间:周一至周五,10:30-16:30,节假日休息。