【技术日记:一个贵州大学生的JSP+Vue3 CMS升级之路】
"同学们!今天又是被JSP和UEditor折磨的一天!"我边嗦着酸汤粉边敲下这行字,屏幕上的Tomcat日志第42次报错。作为贵州山区走出来的程序猿(自封的),我深知在预算99元的情况下实现Word一键粘贴+多端公式渲染有多刺激——这简直比用JSP写微服务还离谱!
当前系统装备清单
🖥️前端装备:Vue3 CLI(未来要升级到最新版)
✏️编辑器:百度UEditor(老当益壮)
🔙后端武器:JSP(经典永流传)
🗃️数据库:MySQL(关系型数据库扛把子)
☁️云存储:阿里云OSS(存图必备)
💻开发环境:Eclipse Jee + 自己的破电脑当服务器
技术升级方案(穷学生版)
方案一:UEditor魔改版 + 粘贴插件(零预算⭐)
// 前端部分 - 扩展UEditor配置UE.registerUI('wordpaste',function(editor){varbtn=newUE.ui.Button({name:'wordpaste',title:'粘贴Word内容',onclick:function(){// 粘贴Word内容处理editor.execCommand('insertHtml','');// 监听粘贴事件document.getElementById('word-paste-area').addEventListener('paste',function(e){handleWordPaste(e,editor);});}});returnbtn;},5);functionhandleWordPaste(e,editor){// 获取剪切板内容varitems=(e.clipboardData||window.clipboardData).items;// 处理图片上传for(leti=0;i<items.length;i++){if(items[i].type.indexOf('image')!==-1){varblob=items[i].getAsFile();uploadImage(blob,editor);}}// 保留其他格式setTimeout(()=>{varcontent=document.getElementById('word-paste-area').innerHTML;editor.execCommand('insertHtml',content);document.getElementById('word-paste-area').remove();},500);}functionuploadImage(blob,editor){// 这里写图片上传逻辑}// 后端JSP图片上传处理<%@ pageimport="com.aliyun.oss.OSSClient"%><%@ pageimport="com.aliyun.oss.model.PutObjectResult"%><%// 获取上传的文件PartfilePart=request.getPart("file");StringfileName=UUID.randomUUID().toString()+filePart.getSubmittedFileName().substring(filePart.getSubmittedFileName().lastIndexOf("."));// 阿里云OSS配置Stringendpoint="your-oss-endpoint";StringaccessKeyId="your-access-key";StringaccessKeySecret="your-secret-key";StringbucketName="your-bucket";// 上传到OSSOSSClientossClient=newOSSClient(endpoint,accessKeyId,accessKeySecret);try{PutObjectResultresult=ossClient.putObject(bucketName,"images/"+fileName,filePart.getInputStream());out.print("{\"url\":\"https://"+bucketName+"."+endpoint+"/images/"+fileName+"\"}");}catch(Exceptione){response.setStatus(500);out.print("{\"error\":\""+e.getMessage()+"\"}");}finally{ossClient.shutdown();}%>方案二:MathJax公式处理(免费!)
MathJax = { tex: { inlineMath: [['$', '$']], displayMath: [['$$', '$$']] }, svg: { fontCache: 'global' } };Office文件导入方案(穷学生版)
使用mammoth.js实现.docx转HTML
importmammothfrom"mammoth";functionhandleFileUpload(file){constreader=newFileReader();reader.onload=function(event){mammoth.extractRawText({arrayBuffer:event.target.result}).then(function(result){// 处理文本内容editor.execCommand('insertHtml',result.value);}).catch(function(error){console.error(error);});};reader.readAsArrayBuffer(file);}福利时间!(硬核学习交友群)
作为即将毕业的"准社畜",我深刻体会到:
- 🎓 毕业设计难(导师要求越来越高)
- 💼 找工作难(简历石沉大海)
- 💻 独自开发难(BUG改到怀疑人生)
所以建了个QQ群223813913,来一起:
- 🚀 接外包赚零花钱(买皮肤不香吗)
- 👥 组队参加比赛(抱大腿必备)
- 🧠 技术交流互助(解决玄学BUG)
- 📦 资源共享(避免重复造轮子)
新人福利:
- 🧧 加群红包1-99元(拼手气时间)
- 💰 推荐奖励20%起(最高50%!)
- 🏅 等级晋升制度(青铜→王者)
举个🌰:推荐一个1万的单子,黄金会员直接拿5000!比实习工资香多了吧?(当然,技术才是王道,钱只是意外收获😎)
卑微求职环节
各位大佬师兄师姐:
小弟即将毕业,求个内推机会!技能点:
- JSP后端开发(老派但扎实)
- Vue前端开发(紧跟潮流)
- CMS系统搭建(毕设练手项目)
- 阿里云部署(折腾出来的经验)
保证:
- 加班不喊累(咖啡续命)
- BUG修得快(谷歌是我老师)
- 学习能力强(CSDN常驻用户)
程序员求职秘诀:
“简历写得好,面试少不了;
项目有亮点,offer不会远!”
快来群里一起玩耍吧~ QQ群:223813913
(群内不定期掉落:外包项目、学习资料、面试经验)
复制插件目录
引入插件文件
UEditor 1.4.3.3示例注意:不要重复引入jquery,如果您的项目已经引入了jq,则不用再引入jq-1.4
在工具栏中增加插件按钮
//工具栏上的所有的功能按钮和下拉框,可以在new编辑器的实例时选择自己需要的重新定义toolbars:[["fullscreen","source","|","zycapture","|","wordpaster","importwordtoimg","netpaster","wordimport","excelimport","pptimport","pdfimport","|","importword","exportword","importpdf"]]初始化控件
varpos=window.location.href.lastIndexOf("/");varapi=[window.location.href.substr(0,pos+1),"asp/upload.asp"].join("");WordPaster.getInstance({//上传接口:http://www.ncmem.com/doc/view.aspx?id=d88b60a2b0204af1ba62fa66288203edPostUrl:api,//为图片地址增加域名:http://www.ncmem.com/doc/view.aspx?id=704cd302ebd346b486adf39cf4553936ImageUrl:"",//设置文件字段名称:http://www.ncmem.com/doc/view.aspx?id=c3ad06c2ae31454cb418ceb2b8da7c45FileFieldName:"file",//提取图片地址:http://www.ncmem.com/doc/view.aspx?id=07e3f323d22d4571ad213441ab8530d1ImageMatch:''});//加载控件注意
如果接口字段名称不是file,请配置FileFieldName。ueditor接口中使用的upfile字段
点击查看详细教程
配置ImageMatch
匹配图片地址,如果服务器返回的是JSON则需要通过正则匹配
ImageMatch:'',点击参考链接
配置ImageUrl
为图片地址增加域名,如果服务器返回的图片地址是相对路径,可通过此属性添加自定义域名。
ImageUrl:"",点击查看详细教程
配置SESSION
如果接口有权限验证(登陆验证,SESSION验证),请配置COOKIE。或取消权限验证。
参考:http://www.ncmem.com/doc/view.aspx?id=8602DDBF62374D189725BF17367125F3
效果
编辑器界面
导入Word文档,支持doc,docx
导入Excel文档,支持xls,xlsx
粘贴Word
一键粘贴Word内容,自动上传Word中的图片,保留文字样式。
Word转图片
一键导入Word文件,并将Word文件转换成图片上传到服务器中。
导入PDF
一键导入PDF文件,并将PDF转换成图片上传到服务器中。
导入PPT
一键导入PPT文件,并将PPT转换成图片上传到服务器中。
上传网络图片
下载示例
点击下载完整示例