日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Java之下载word文档,linux视频监控

發(fā)布時(shí)間:2024/3/13 linux 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java之下载word文档,linux视频监控 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第二步:將ftl文件放入項(xiàng)目中。編寫下載word的java代碼。

項(xiàng)目的文件存放位置。

項(xiàng)目是比較簡(jiǎn)單的web項(xiàng)目,使用的是Struts2。下面是web.xml中的配置,一切從簡(jiǎn)。

只有一個(gè)簡(jiǎn)單的跳轉(zhuǎn),當(dāng)鏈接訪問/saveDocServlet的時(shí)候請(qǐng)求會(huì)進(jìn)入MyServlet中,進(jìn)行邏輯處理。

下面是MyServlet的代碼;

package com.zhutong.servlet;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Enumeration;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import com.zhutong.util.WordGenerator;

public class MyServlet extends HttpServlet {

@Override

protected void service(HttpServletRequest req, HttpServletResponse resp)

throws ServletException, IOException {

req.setCharacterEncoding(“utf-8”);

Map<String, Object> map = new HashMap<String, Object>();

/* Enumeration paramNames = req.getParameterNames();

// 通過循環(huán)將表單參數(shù)放入鍵值對(duì)映射中

while (paramNames.hasMoreElements()) {

String key = paramNames.nextElement();

String value = req.getParameter(key);

map.put(key, value);

}*/

map.put(“topic”, “我是標(biāo)題”);

map.put(“module”, “我是模塊”);

// 提示:在調(diào)用工具類生成Word文檔之前應(yīng)當(dāng)檢查所有字段是否完整

// 否則Freemarker的模板殷勤在處理時(shí)可能會(huì)因?yàn)檎也坏街刀鴪?bào)錯(cuò) 這里暫時(shí)忽略這個(gè)步驟了

File file = null;

InputStream fin = null;

ServletOutputStream out = null;

try {

// 調(diào)用工具類WordGenerator的createDoc方法生成Word文檔

file = WordGenerator.createDoc(map, “resume”);

fin = new FileInputStream(file);

resp.setCharacterEncoding(“utf-8”);

resp.setContentType(“application/msword”);

// 設(shè)置瀏覽器以下載的方式處理該文件默認(rèn)名為resume.doc

resp.addHeader(“Content-Disposition”,"attachment;filename=r

《一線大廠Java面試題解析+后端開發(fā)學(xué)習(xí)筆記+最新架構(gòu)講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼講義》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整內(nèi)容開源分享

esume.doc");

out = resp.getOutputStream();

byte[] buffer = new byte[512]; // 緩沖區(qū)

int bytesToRead = -1;

// 通過循環(huán)將讀入的Word文件的內(nèi)容輸出到瀏覽器中

while ((bytesToRead = fin.read(buffer)) != -1) {

out.write(buffer, 0, bytesToRead);

}

} finally {

if (fin != null)

fin.close();

if (out != null)

out.close();

if (file != null)

file.delete(); // 刪除臨時(shí)文件

}

}

}

map中key值對(duì)應(yīng)ftl模板${topic}中的屬性,可以直接取到key值對(duì)應(yīng)的value值。value值可以是寫死的,可以是前后臺(tái)交互的變量,上面代碼中注釋的是其中一部分,稍加擴(kuò)展就可以實(shí)現(xiàn)。

上面代碼中引用到一個(gè)生成word文件的工具類WordGenerator.createDoc(map,“resume”)

下面是工具類的對(duì)應(yīng)的代碼:

package com.zhutong.util;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.HashMap;

import java.util.Map;

import freemarker.template.Configuration;

import freemarker.template.Template;

@SuppressWarnings(“deprecation”)

public class WordGenerator {

private static Configuration configuration = null;

private static HashMap<String, Template> allTemplates = null;

static {

configuration = new Configuration();

configuration.setDefaultEncoding(“utf-8”);

configuration.setClassForTemplateLoading(WordGenerator.class,"/com/zhutong/ftl");

/*

  • allTemplates = new HashMap<>(); // Java 7 鉆石語法

*/

allTemplates = new HashMap<String, Template>();

try {

allTemplates.put(“resume”, configuration.getTemplate(“resume.ftl”));

} catch (IOException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

總結(jié)

以上是生活随笔為你收集整理的Java之下载word文档,linux视频监控的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。