當前位置:首頁 » 文件管理 » javanginx上傳文件

javanginx上傳文件

發布時間: 2022-06-16 02:02:27

java項目如何實現上傳圖片到項目外部,訪問時使用相對於域名的相對路徑 系統架構大致是jboss+nginx

我有一段上傳圖片的代碼,並且可以根據實際,按月或按天等,生成存放圖片的文件夾
首先在JSP上放一個FILE的標簽這些我都不說了,你也一定明白,我直接把處理過程給你發過去
我把其中存到資料庫中的內容刪除了,你改一下就能用
/**
*
* 上傳圖片
* @param servlet
* @param request
* @param response
* @return
* @throws Exception
*/

//這里我是同步上傳的,你隨意
public synchronized String importPic(HttpServlet servlet, HttpServletRequest request,HttpServletResponse response) throws Exception {
SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMM");
Date nowtime=new Date();
String formatnowtime=formatDate.format(nowtime);
File root = new File(request.getRealPath("/")+"uploadfile/images/"+formatnowtime+"/"); //應保證在根目錄中有此目錄的存在 如果沒有,下面則上創建新的文件夾

if(!root.isDirectory())
{
System.out.println("創建新文件夾成功"+formatnowtime);
root.mkdir();
}
int returnflag = 0;
SmartUpload mySmartUpload =new SmartUpload();
int file_size_max=1024000;
String ext="";
String url="uploadfile/images/"+formatnowtime+"/";

// 只允許上載此類文件
try{
// 初始化
mySmartUpload.initialize(servlet.getServletConfig(),request,response);
mySmartUpload.setAllowedFilesList("jpg,gif,bmp,jpeg,png,JPG");
// 上載文件

mySmartUpload.upload();
} catch (Exception e){
response.sendRedirect()//返回頁面
}

com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){ //沒有選擇圖片做提示!
returnflag = 3;
}else{
String myFileName=myFile.getFileName(); //取得上載的文件的文件名
ext= myFile.getFileExt(); //取得後綴名
if(ext.equals("jpg")||ext.equals("gif")||ext.equals("bmp")||ext.equals("jpeg")||ext.equals("png")||ext.equals("JPG")){ //jpeg,png不能上傳!)
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
if(file_size<file_size_max){
try{
//我上面說到,把操作資料庫的代友刪除了,這里就應該是判斷,你的圖片是不是已經存在了,存在要怎麼處理,不存在要怎麼處了,就是你的事了 }
//更改文件名,取得當前上傳時間的毫秒數值
Calendar calendar = Calendar.getInstance();
//String filename = String.valueOf(calendar.getTimeInMillis());
String did = contractBean.getMaxSeq("MULTIMEDIA_SEQ");
String filename = did;
String flag = "0";
String path = request.getRealPath("/")+url;
String ename = myFile.getFileExt();
//.toLowerCase()轉換大小寫
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext; //保存路徑
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//將圖片信息插入到資料庫中
// ------上傳完成,開始生成縮略圖-----
java.io.File file = new java.io.File(saveurl); //讀入剛才上傳的文件
String newurl=request.getRealPath("/")+url+filename+"_min."+ext; //新的縮略圖保存地址
Image src = javax.imageio.ImageIO.read(file); //構造Image對象
float tagsize=200;
int old_w=src.getWidth(null);
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0;
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
// new_w=Math.round(old_w/tempdouble);
// new_h=Math.round(old_h/tempdouble);//計算新圖長寬
new_w=150;
new_h=110;//計算新圖長寬
BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //繪制縮小後的圖
FileOutputStream newimage=new FileOutputStream(newurl); //輸出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag); //近JPEG編碼
newimage.close();
returnflag = 1;
}else{
returnflag = 0;
System.out.println("('上傳文件大小不能超過"+(file_size_max/1000)+"K');");
}
}else{
returnflag = 2;
}
}
response.sendRedirect();
return "11";
}

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

❷ 求java學習路線圖

/*回答內容很長,能看完的少走一個月彎路,絕不抖機靈*/

提前預警:本文適合Java新手閱讀(老手可在評論區給下建議),希望大家看完能有所收獲。

廢話不多少了,先了解一下Java零基礎入門學習路線:

第一階段:JavaSE階段

變數、數據類型、運算符

  • 二進制和十進制的轉化

  • 注釋、單行注釋、多行注釋、文本注釋、注釋內容和位元組碼的關系

  • 標識符、關鍵字、駝峰原則

  • 變數的本質、內存畫圖、變數聲明和初始化

  • 變數的分類和作用域(局部變數、成員變數、靜態變數)

  • 常量和Final

  • 基本數據類型介紹

  • 整型變數和整型常量

  • 浮點類型、float、double

  • char字元型、轉義字元

  • boolean布爾型、if語句使用要點、布爾類型佔用空間問題

  • 運算符介紹

  • 算數運算符(二元、自增、自減)

  • 賦值和賦值運算符

  • 關系運算符詳解

  • 邏輯運算符、短路運算符詳解

  • 位運算符詳解

  • 字元串連接符

  • 條件運算符(三元運算符)

  • 運算符優先順序問題

  • 自動類型轉換詳解

  • 強制類型裝換詳解

  • 基本數據類型裝換常見錯誤、溢出、L問題

  • 使用Scanner獲取鍵盤輸入

控制語句

  • 控制語句和實現邏輯對應

  • if單選結構

  • if_elseif_else多選結構

  • switch語句_IDEA更換主題

  • 循環_while

  • 循環_for循環_dowhile

  • 嵌套循環

  • break和continue語句_標簽_控制語句底層原理

  • 寫一個年薪計算機_網路查問題的秘訣(重要)

  • 個人所得稅計算器軟體

  • 方法核心詳解_天才思維模型教你高手學習思維模式

  • 方法的重載

  • 遞歸結構講解_遞歸頭_遞歸體

面向對象編程-基礎

  • 面向過程和面向對象的區別

  • 類和對象的概述

  • 類的屬性和方法

  • 創建對象內存分析

  • 構造方法(Construtor)及重載

  • 對象類型的參數傳遞

  • this關鍵字

  • static關鍵字詳解

  • 局部代碼塊、構造代碼塊和靜態代碼塊

  • package和import詳解

  • JavaDoc生成API文檔

面向對象編程-進階

  • 面向對象的三大特性

  • 面向對象之【封裝(Encapsulation)】

  • 訪問許可權修飾符

  • 面向對象之【繼承(Inheritance)】

  • Object類

  • 方法重寫Override

  • super關鍵字詳解

  • 重寫equals()和toString()

  • 繼承中對象創建的內存分析

  • 面向對象之【多態(Polymorphism)】

  • 向上轉型

  • 向下轉型

  • instanceof運算符

  • 編譯時和運行時詳解

  • final修飾符

  • 抽象類和抽象方法(abstrct)

  • 介面的定義和實現

  • JDK8的介面新特性

  • 介面應用:內部類比較器Comparable

  • 內部類詳解

  • Java的內存管理與垃圾回收

異常機制

  • 異常的概述

  • 異常的執行過程與分析

  • try-catch-finally捕捉異常

  • throw拋出異常

  • throws聲明異常

  • 異常繼承體系

  • 運行時異常和編譯異常

  • 自定義異常

Java常用類

Wrapper包裝類

  • 自動裝箱和自動拆箱

  • 包裝類的源碼分析

  • String類的使用與內存原理

  • String類的源碼分析

  • StringBuffer

  • StringBuilder

  • 字元串處理類性能分析

  • Date類

  • System類

  • DateFormat類

  • Calendat類

  • Math類

  • BigInteger類和BigDecimal類

  • Random類

  • 枚舉類

  • File類

  • 常見的面試題講述與分析

  • 數據結構演算法

  • 數據結構的概述

  • 線性表

  • 順序表

  • 鏈表

  • 棧和隊列

  • 二叉樹

  • 二叉查找樹

  • 二叉平衡樹

  • 黑紅樹

  • 冒泡排序

  • 選擇排序

  • 遞歸

  • 折半查找

  • 集合(容器)

  • 集合和數組的聯系和區別

  • 集合框架體系

  • ArrayList的使用和源碼分析

  • 集合中使用泛型

  • LinkedList的使用和源碼分析

  • HashSet的使用和源碼分析

  • 哈希表及原理

  • TreeSet的使用和源碼分析

  • 比較器Comparable和Comparator

  • HashMap的使用和源碼分析

  • TreeMap的使用和源碼分析

  • Iterator於ListIterator

  • Collections工具類

  • 舊集合類Vector、Hashtable

  • 集合總結和選擇依據

  • 泛型介面

  • 泛型類

  • 泛型方法

  • IO流

  • IO流的概念

  • IO流的分類及其原理分析

  • 文件流FlieInputStream、FileOutputStream

  • 緩沖流BufferedInputStream、BufferedOutputStream

  • 數據流ObjectInputStream、ObjectOutputStream

  • 序列化和反序列化

  • 轉換流InputStreamReader、OutputStreamWriter

  • 列印流PrintWrite和PrintStream

  • 數組流ByteArrayOutputStream、ByteArrayInputStream

  • 使用IO復制文件夾

  • 多線程

  • 進程和線程

  • 線程的創建與啟動

  • 創建線程的三種方式對比

  • 線程的生命周期

  • 線程式控制制

  • 多線程的安全問題與解決辦法

  • 線程的同步:同步代碼塊

  • 線程的同步:同步方法

  • 線程的同步:Lock鎖

  • 線程的死鎖問題

  • 線程通信

  • Condition

  • 線程的完整生命周期

  • 線程池ThreadPoolExecutor

  • ForkJoin框架

  • ThreadLocal類

  • 網路編程

  • 計算機網路基礎知識

  • 網路通信協議

  • OSI參考模型

  • TCP/IP參考模型

  • 數據的封裝與拆封原理解析

  • TCP協議

  • UDP協議

  • IP地址和埠號

  • URL和Socket

  • 使用TCP編程實現登錄功能

  • 使用UDP編程實現客服系統

  • 使用TCP編程實現文件上傳

  • 集合提升尋訓練

  • 手寫ArrayList

  • 手寫單鏈表

  • 手寫Linkedlist

  • 手寫HashMap

  • 手寫HashSet

  • 最新並發集合類

  • 多線程提升訓練

  • 生產者消費者模式擴展

  • Lock鎖和Condition

  • ReadWriteLock

  • BlockingQueue

  • volatile關鍵字

  • 多線程題目練習

  • JDK新特徵

  • 面試題詳解

  • 設計模式

  • 設計模式入門

  • 面向對象設計七大原則

  • 簡單工廠模式

  • 工廠方法模式

  • 單例模式

  • 原型模式

  • 裝飾模式

  • 適配器模式

  • 外觀模式

第二階段:資料庫

    Mysql基礎

  • 資料庫基礎知識

  • MySQL基礎知識

  • MySQL8新特徵

  • 安裝和卸載MySQL8

  • 使用navicat訪問資料庫

  • SQL語言入門

  • 創建資料庫表

  • DML

  • 修改刪除資料庫表

  • 表的完整性約束

  • 表的外鍵約束

  • DML擴展

  • MySQL 查詢語句

  • 基本select查詢

  • where子句

  • 函數

  • group by

  • having

  • SQL99-內連接查詢

  • SQL99-外連接查詢

  • SQL99-自連接查詢

  • SQL92-連接查詢

  • 不相關子查詢

  • 相關子查詢

  • 分頁查詢

  • 資料庫對象

  • 索引

  • 事務及其特徵

  • 事務的並發問題

  • 事務的隔離級別

  • 存儲過程

  • 導入導出數據

  • JDBC

  • JDBC概述

  • 使用JDBC完成添加/更新/刪除操作

  • 使用JDBC完成查詢操作

  • JDBC常用介面

  • 使用PreparedStatement

  • 使用事務完成銀行轉賬

  • 提取DBUtil工具類

  • 使用Properties讀寫屬性文件

  • 日誌框架log4j

  • 開發員工管理系統

第三階段:JavaEE階段

      Servlet

    • web開發概述

    • B/S和C/S架構簡介

    • HTTP協議

    • HTTP請求頭和響應頭

    • Tomcat安裝使用

    • Tomcat目錄結構

    • Servlet概述

    • Servlet快速入門

    • Servlet生命周期

    • 讀取配置文件信息

    • HttpServletRequest

    • HttpServletResponse

    • GET和POST區別

    • 解決中文亂碼

    • 請求轉發與重定向

    • 絕對路徑和相對路徑

    • Cookie

    • Session

    • ServletContext

    • ServletConfig

    • JSP

    • JSP技術介紹

    • JSP的執行過程

    • scriptlet

    • 表達式

    • 聲明

    • JSP指令元素

    • JSP動作元素

    • JSP隱式對象

    • JSP底層原理

    • 九大內置對象

    • 四個作用域

    • Servlet和JSP的關系和區別

    • MVC模式

    • 合並Servlet

    • JavaScript

    • JavaScript概述與特點

    • JS基礎語法

    • 函數

    • 數組

    • Math對象

    • String對象

    • Date對象

    • 事件event

    • 瀏覽器開發者工具

    • console

    • DOM和BOM

    • window

    • location

    • navigator

    • history

    • 認識DOM

    • DOM獲取元素

    • jQuery

    • jQuery簡介及快速入門

    • jQuery入口函數

    • jQuery對象與DOM對象互相轉換

    • 基本選擇器

    • 屬性選擇器

    • 位置選擇器

    • 表單選擇器

    • 內容選擇器

    • jQuery事件

    • jQuery動畫效果

    • DOM操作-操作文本

    • DOM操作-操作屬性

    • DOM操作-操作元素

    • 直接操作CSS樣式

    • 操作CSS類樣式

    • 購物車案例

    • 表單驗證

    • 正則表達式

    • EL+JSTL+過濾器+監聽器

    • EL介紹及使用

    • EL取值原理

    • EL隱含對象

    • EL邏輯運算

    • JSTL介紹-核心標簽庫

    • JSTL核心標簽庫

    • JSTL-格式標簽庫

    • Filter原理

    • Filter生命周期

    • Filter鏈

    • Filter登錄驗證

    • Filter許可權控制

    • Listener概述及分類

    • Listener監聽在線用戶

    • Ajax和JSON

    • Ajax非同步請求和局部刷新的原理

    • 使用原生Ajax驗證用戶唯一性

    • jQuery Ajax

    • JSON的格式和使用

    • 主要JSON解析器

    • Jackson的使用

    • Jackson的實現原理

    • 使用jQuery Ajax實現三級聯動

    • 使用jQuery Ajax實現自動補全

    • 分頁和文件上傳/下載

    • 分頁的意義

    • 理解分頁工具類

    • 實現基本分頁

    • 實現帶查詢的分頁

    • 文件上傳原理

    • 文件上傳API

    • 實現文件上傳

    • 文件下載原理

    • 文件下載響應頭

    • 實現文件下載

    第四階段:框架階段

      MyBatis

    • MyBatis概述

    • MyBatis入門配置

    • 基本的CRUD操作

    • 核心配置文件詳解

    • Mapper.xml基礎詳解

    • 模糊查詢

    • 分頁的實現及插件PageHelper的使用

    • 動態sql+sql片段的使用

    • 一對多、多對一的關系處理

    • 註解的使用

    • 一級緩存和二級緩存說明及使用

    • generator逆向工程使用

    • Spring

    • Spring框架簡介

    • Spring官方壓縮包目錄介紹

    • Spring環境搭建

    • IoC/DI容器詳解

    • Spring創建Bean的三種方式

    • scope屬性講解

    • Spring中幾種注入方式

    • 靜態代理設計模式

    • 動態代理設計模式

    • AOP詳解

    • AOP中幾種通知類型

    • AOP兩種實現方式

    • 自動注入

    • 聲明式事務

    • 事務傳播行為

    • 事務隔離級別

    • 只讀事務

    • 事務回滾

    • 基於註解式配置

    • 常用註解

    • Spring 整合MyBatis

    • i18n

    • Spring整合Junit

    • SpringMVC

    • MVC架構模式

    • 手寫MVC框架

    • SpringMVC簡介

    • SpringMVC運行原理

    • 基於配置文件方式搭建環境

    • 基於註解方式搭建環境

    • SpringMVC的跳轉及視圖解析器的配置

    • SpringMVC和Ajax的交互

    • Spring 參數注入

    • SpringMVC作用域傳值

    • 視圖解析器

    • 文件下載

    • 文件上傳

    • Spring攔截器/攔截器棧

    • 登錄狀態驗證

    • SpringMVC容器和Spring容器介紹

    • 異常處理4種方式

    • SpringMVC5其他常用註解

    • Maven

    • Maven簡介

    • Maven原理

    • linux安裝及注意事項

    • Maven項目結構

    • POM模型

    • Maven 中項目類型

    • 創建WAR類型的Maven項目

    • scope屬性可取值

    • SSM項目拆分演示

    • Maven的常見插件講解

    • 熱部署

    • BootStrap

    • BootStrap概述

    • BootStrap柵格系統

    • BootStrap常用全局CSS樣式

    • 常用組件

    • 常用JavaScript插件

    • RBAC

    • RBAC概述

    • RBAC發展歷史

    • 基於RBAC的資料庫表設計

    • URL攔截實現

    • 動態菜單實現

    • 密碼學

    第五階段:前後端分離階段

      Spring Boot

    • Spring Boot簡介

    • Spring Boot實現Spring MVC

    • 配置文件順序及類型講解

    • Spring Boot項目結構

    • Spring Boot 整合MyBatis

    • Spring Boot 整合Druid

    • Spring Boot 整合PageHelper

    • Spring Boot 整合logback

    • Spring Boot 整合JSP

    • Spring Boot 整合Thymeleaf

    • Spring Boot 開發者工具

    • Spring Boot 異常顯示頁面

    • Spring Boot 整合Junit4

    • Spring Boot 項目打包部署

    • Spring Boot 整合Quartz

    • Spring Boot 中Interceptor使用

    • Spring Boot Actuator

    • HikariCP

    • Logback

    • Logback簡介

    • Logback依賴說明

    • Logback 配置文件講解

    • Logback 控制台輸出

    • Logback 文件輸出

    • Logback 資料庫輸出

    • Spring Security

    • Spring Security簡介

    • Spring Security架構原理

    • 什麼是認證和授權

    • 基礎環境搭建

    • 自定義認證流程

    • UserDetailsService和UserDetails

    • PasswordEncoder

    • 自定義認證結果

    • 授權-訪問路徑匹配方式

    • 授權-許可權管理

    • 基於註解實現許可權管理

    • Thymeleaf整合Security許可權管理

    • Rememberme 實現

    • 退出實現

    • CSRF

    • Linux - CentOS 8

    • Linux簡介

    • VMWare安裝及使用

    • Linux安裝及注意事項

    • Linux目錄結構及路徑

    • Linux常用命令

    • VMWare常用配置

    • XShell安裝及使用

    • Xftp安裝及使用

    • JDK解壓版配置步驟

    • Tomcat配置步驟

    • 安裝MySQL

    • WAR包部署

    • Docker

    • Docker簡介

    • Docker與VM對比

    • Docker特點

    • Docker架構

    • Docker安裝與啟動

    • 鏡像加速器配置

    • Docker鏡像操作常用命令

    • Docker容器操作常用命令

    • DockerFile

    • 搭建本地鏡像倉庫

    • 推送鏡像到阿里雲及本地倉庫

    • Docker容器生命周期

    • Docker數據管理

    • Redis

    • Redis簡介

    • Redis 單機版安裝

    • Redis 數據類型介紹

    • Redis 常用命令

    • Redis 持久化方案

    • Redis 的主從搭建

    • Redis的哨兵搭建

    • Redis 的集群搭建

    • Spring Boot整合Spring Data Redis

    • Redis的緩存穿透

    • Redis的緩存雪崩

    • Redis的緩存擊穿

    • Vue

    • vsCode和插件安裝

    • webpack介紹

    • Vue項目創建

    • Vue模板語法

    • Vue條件渲染

    • Vue列表渲染

    • Vue事件處理

    • Vue計算屬性

    • Vue Class與Style

    • Vue表單處理

    • Vue組件

    • Vue組件生命周期

    • Vue 路由配置

    • Vue Axios網路請求

    • Vue跨域處理

    • Vue Element

    • Mock.js

    • Swagger

    • Swagger2簡介

    • Springfox

    • Swagger2基本用法

    • Swagger-UI用法

    • Swagger2配置

    • Swagger2常用配置

    • Git/GitEE

    • Git的下載和安裝

    • Git和SVN對比

    • Git創建版本庫

    • Git版本控制

    • Git遠程倉庫

    • Git分支管理

    • Git標簽管理

    • GitEE建庫

    • GitEE 連接及使用

    • GitEE 組員及管理員配置

    第六階段:微服務架構

      FastDFS

    • 分布式文件系統概述

    • FastDFS簡介

    • FastDFS架構

    • Tracker Server

    • Storage Server

    • FastDFS安裝

    • 安裝帶有FastDFS模塊的Nginx

    • Fastdfs-java-client的使用

    • 創建Fastdfs-java-client工具類

    • 實現文件上傳與下載

    • KindEditor介紹

    • 通過KindEditor實現文件上傳並回顯

    • RabbitMQ

    • AMQP簡介

    • RabbitMQ簡介

    • 安裝Erlang

    • 安裝RabbitMQ

    • RabbitMQ原理

    • Spring Boot 集成RabbitMQ

    • RabbitMQ的交換器

    • Spring AMQP的使用

    • Spring Cloud Netflix Eureka

    • Eureka簡介

    • Eureka和Zookeeper 對比

    • 搭建Eureka注冊中心

    • Eureka 服務管理平台介紹

    • 搭建高可用集群

    • 集群原理

    • Eureka優雅停服

    • Spring Cloud Netflix Ribbon

    • Ribbon簡介

    • 集中式與進程內負載均衡區別

    • Ribbon常見的負載均衡策略

    • Ribbon的點對點直連

    • Spring Cloud OpenFeign

    • Feign簡介

    • Feign的請求參數處理

    • Feign的性能優化

    • 配置Feign負載均衡請求超時時間

    • Spring Cloud Netflix Hystrix

    • Hystrix簡介

    • 服務降級

    • 服務熔斷

    • 請求緩存

    • Feign的雪崩處理

    • 可視化的數據監控Hystrix-dashboard

    • Spring Cloud Gateway

    • Spring Cloud Gateway簡介

    • Gateway基於配置文件實現路由功能

    • Gateway基於配置類實現路由功能

    • Gateway中內置過濾器的使用

    • Gateway中自定義GatewayFilter過濾器的使用

    • Gateway中自定義GlobalFilter過濾器的使用

    • Gateway中使用過濾器實現鑒權

    • Gateway結合Hystrix實現熔斷功能

    • Spring Cloud Config

    • 什麼是分布式配置中心

    • 創建配置中心服務端

    • 創建配置中心客戶端

    • 基於Gitee存儲配置文件

    • 基於分布式配置中心實現熱刷新

    • Spring Cloud Bus

    • 什麼是消息匯流排

    • 基於消息匯流排實現全局熱刷新

    • ELK

    • ElasticSearch介紹

    • ElasticSearch單機版安裝

    • ElasticSearch集群版安裝

    • ElasticSearch索引管理

    • ElasticSearch文檔管理

    • ElasticSearch文檔搜索

    • SpringDataElasticSearch訪問ElasticSearch

    • LogStash介紹

    • 基於LogStash收集系統日誌

    • TX-LCN

    • 分布式事務簡介

    • 分布式事務兩大理論依據

    • 分布式事務常見解決方案

    • LCN簡介

    • TX-LCN的3種模式

    • LCN原理

    • LCN環境搭建及Demo演示

    • Nginx

    • Nginx的簡介

    • 什麼是正向代理、反向代理

    • Nginx的安裝

    • Nginx配置虛擬主機

    • Nginx配置服務的反向代理

    • Nginx的負載均衡配置

    • Spring Session

    • Spring Session介紹

    • 通過Spring Session共享session中的數據

    • 通過Spring Session同步自定義對象

    • Spring Session的Redis存儲結構

    • 設置Session失效時間

    • Spring Session序列化器

    • MyBatis Plus

    • MyBatis Plus簡介

    • Spring整合MyBatis Plus

    • MyBatis Plus的全局策略配置

    • MyBatis 的主鍵生成策略

    • MyBatis Plus的CRUD操作

    • 條件構造器EntityWrapper講解

    • MyBatis Plus的分頁插件配置

    • MyBatis Plus的分頁查詢

    • MyBatis Plus的其他插件講解

    • MyBatis Plus的代碼生成器講解

    • MyBatis Plus的公共欄位自動填充

    • ShardingSphere

    • 簡介

    • 資料庫切分方式

    • 基本概念

    • MySQL主從配置

    • 切片規則

    • 讀寫分離

    • 實現分庫分表

    第七階段:雲服務階段

      Kafka

    • Kafka簡介

    • Kafka架構

    • 分區和日誌

    • Kafka單機安裝

    • Kafka集群配置

    • 自定義分區

    • 自動控制

    • Spring for Apache Kafka

    • Zookeeper

    • Zookeeper簡介和安裝

    • Zookeeper 數據模型

    • Zookeeper 單機版安裝

    • Zookeeper常見命令

    • ZClient操作Zookeeper

    • Zookeeper 集群版安裝

    • Zookeeper 客戶端常用命令

    • Zookeeper分布式鎖

    • RPC

    • 什麼是分布式架構

    • 什麼是RFC、RPC

    • HttpClient實現RPC

    • RestTemplate

    • RMI實現RPC

    • 基於Zookeeper實現RPC 遠程過程調用

    • Dubbo

    • SOA架構介紹

    • Dubbo簡介

    • Dubbo結構圖

    • Dubbo注冊中心

    • Dubbo 支持的協議

    • Dubbo 注冊中心搭建

    • Spring Boot 整合 Dubbo

    • Admin管理界面

    • Dubbo 搭建高可用集群

    • Dubbo 負載均衡

    • Spring Cloud Alibaba Dubbo

    • Spring Cloud Alibaba Dubbo簡介

    • 基於Zookeeper發布服務

    • 基於Zookeeper訂閱服務

    • 實現遠程服務調用處理

    • Spring Cloud Alibaba Nacos

    • Spring Cloud Alibaba Nacos簡介

    • 搭建Nacos伺服器

    • 基於Nacos發布|訂閱服務

    • 實現遠程服務調用處理

    • Nacos Config配置中心

    • Spring Cloud Alibaba Sentinel

    • Spring Cloud Alibaba Sentinel簡介

    • 搭建Sentinel伺服器

    • Sentinel-實時監控

    • Sentinel-簇點鏈路

    • Sentinel-授權規則

    • Sentinel-系統規則

    • @SentinelResource註解

    • 持久化規則

    • Spring Cloud Alibaba Seata

    • Spring Cloud Alibaba Seata簡介

    • 搭建Seata伺服器

    • Seata支持的事務模式-AT模式

    • Seata支持的事務模式-TCC模式

    • Seata支持的事務模式-Saga模式

    • Seata支持的事務模式-XA模式

    • SeataAT事務模式應用方式

    • SeataTCC事務模式應用方式

    ❸ 真心求助.nginx錯誤

    Nginx伺服器錯誤一般有以下幾點原因:

    1、請求的header過大。nginx默認的header長度上限是4k,如果超過了這個值,nginx會直接返回400錯誤.

    解決方法:配置nginx.conf相關設置。可以通過以下2個參數來調整header上限:

    client_header_buffer_size 16k;large_client_header_buffers 4 16k。

    2、上傳文件過程中出現錯誤。這時瀏覽器顯示「413 Request Entity Too Large」。這是因為沒有設置client_max_body_size,這個參數默認只是1M,也就是說發布的文章內容大小不能超過1M。

    解決方法:增加如下兩行到nginx.conf的http{}段, 增大nginx上傳文件大小限制:設置允許發布內容為8M:client_max_body_size 8M;client_body_buffer_size 128k。

    另外如果運行的是php,那麼還要檢查php.ini,這個大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,這樣就不會因為提交數據大小不一致出現的錯誤:post_max_size = 8M;upload_max_filesize = 6M。

    修改完配置後,別忘記重新載入。

    3、客戶端在為等到伺服器相應返回前就關閉了客戶端描述符。一般出現在客戶端設置超時後,伺服器主動關閉。

    解決方法:根據實際Nginx後端伺服器的處理時間修改客戶端超時時間。

    4、腳本錯誤(php語法錯誤、lua語法錯誤)。

    解決方法:查看nginx_err_log php_err_log。

    5、訪問量過大,系統資源限制,不能打開過多文件。 磁碟空間不足。(access log開啟可能導致磁碟滿溢,伺服器主動關閉)。

    解決方法:修改/etc/sysctl.conf文件,並使用下面的命令確認: #sysctl -p。要使 limits.conf 文件配置生效,必須要確保 pam_limits.so 文件被加入到啟動文件中。

    6、後端服務無法處理,業務中斷。

    解決方法:從後端日誌獲取錯誤原因,解決後端伺服器問題。

    7、後端伺服器在超時時間內,未響應Nginx代理請求。

    解決方法:根據後端伺服器實際處理情況,調正後端請求超時時間。

    8、網站頁面緩存過大。

    解決方法:配置nginx.conf相關設置:fastcgi_buffers 8 128k;send_timeout 60。


    ❹ Java學習路線

    根據個人實際的經歷,結合多種書籍,特別整理出了下面的java學習路線:

    一、Java SE部分

    1、java基礎:基礎語法;面向對象(重點);集合框架(重點);常見類庫API;

    2、java界面編程:AWT;事件機制;Swing;

    3、java高級知識:Annotation;IO和NIO、AIO;多線程、線程池;阻塞、非阻塞、非同步網路通信;反射、動態代理;

    二、JDBC編程

    4、SQL基礎:基礎SQL語句;基本查詢;多表查詢;子查詢;結果集的交、並、差運算;

    5、JDBC基礎:常見資料庫用法;JDBC操作常見資料庫;RowSet與離線結果集;資料庫連接池;事務管理、批處理;

    6、JDBC進階:存儲過程、函數;觸發器;理解JCBC的不足;掌握ORM工具優勢和設計;

    三、DHTML編程

    7、HTML基礎:基本HTML標簽;常見表單標簽;DIV+CSS布局;

    8、JavaScript知識:javascript基本語法;javascript基本對象特徵;Json語法;深刻理解javascript的動態特徵;

    9、Dom和事件機制:DOM操作、編程;常見瀏覽器事件機制;掌握用戶交互技巧;

    四、XML編程

    10、XML基礎:XML基礎規則;DTD和SCheme;XML和樣式單;

    11、XML進階:DOM、SAX和JAXP;dom4j、JDOM等工具;XQuery和XQJ;基於XML的數據交換;

    12、Web Service:JAX_WS2、SAAJ規范;WSDL和SOAP協議;CXF框架、攔截器;CXF整合Spring;

    五、Java Web編程

    13、Web編程基礎:Tomcat伺服器;Jsp語法、EL、內置對象;Servlet API;Servlet 3.0註解;Listener和Filter;

    14、Web編程進階:自定義標簽庫;MVC和DAO、Servlet、標簽的作用;JSTL、DisplayTag等常見標簽庫用法;

    15、Web編程原理:請求/響應、架構;Http協議;深刻理解Jsp運行原理;掌握Web容器底層的線程池、socket通信、調用Servlet的命令模式;

    六、Ajax編程:

    16、Ajax編程:XML HttpRequest和非同步請求;發送請求和處理響應;常見Ajax庫(Prototype、Jquery、ExtJs、DWR)用法;結合Http協議、非同步請求深入研究ajax庫的設計;

    七、Android開發

    17、Android基礎:Android開發調試環境;Android應用結構;界面組件與界面編程;資源管理;四大組件;

    18、Android中級:文件IO和SQLite;圖形、圖像與動畫;音頻、視頻的錄制與播放;感測器編程;GPS應用;

    19、Android高級:網路編程與Web Service;OpenGL_ES 3D開發;整合Google服務;使用NDK開發;java和c相互調試;

    八、輕量級Java EE

    17、Struts2:MVC與struts體系;Action和Result;國際化和標簽庫;文件上傳、下載;類型轉換和輸入檢驗;攔截器與插件開發;

    18、Hibernate:ORM與持久化映射;關系映射、繼承映射;延遲載入、性能調優;HQL查詢、條件查詢、SQL查詢;二級緩存和查詢緩存;

    19、Spring:IoC與Bean配置、管理;Bean生命周期;SP、EL;AOP與事務許可權控制;S2SH整合開發;Spring整合Jpa;

    九、經典Java EE

    20、JSF<選學>:MVC與JSF設計理念;託管Bean與導航模型;JSF流程與事件機制;JSF標簽庫;類型轉換與輸入檢驗;

    21、EJB及相關技術:JNPI與RMI;會話Bean及其生命周期;IoC與EJB攔截器;JMS與MDB;會話Bean與Web Service;

    22、JPA:ORM框架與JPA規范;JPA註解與常用API;JTA事務與事務管理;JPQL查詢;EJB、JPA整合;

    十、Java 拓展、進階:

    23、Java EE實踐與架構:Ant+Ivy或Maven;SVN、CVS;深刻理解10種以上設計模式;掌握各種Java EE架構及各自優勢;

    24、Workflow:Workflow規范及功能;JBPM等workflow框架;多次重構、反復思考;大型項目經驗;

    25、Java EE進階:掌握各MVC框架運行原理、能開發類似框架;掌握Spring、HiveMind、AspectJ等框架原理、能開發類似工具;掌握Hibernate、iBatis等框架原理,能開發類似工具;深入研究EJB機制、大致了解應用伺服器的實現;

    希望對您有所幫助!~

    ❺ 客戶端發送請求, java後端有耗時任務,web伺服器如nginx返回服務端超時信息,會中斷後端請求處理嗎

    不會終止。
    超過nginx超時時間,那麼請求斷開,但是未超過java處理超時時間,所以會等到java執行超時後處理結束。

    ❻ 如何發布一個java工程

    方法很多,直接放到tomcat的webapps下。當然還有weblogic,nginx等都可以發布 Java工程

    項目部署就是把你寫好的項目放到伺服器容器裡面去。

    ❼ java 怎麼向nginx web伺服器傳輸文件

    搭建項目部署的環境
    購買伺服器
    首先需要去阿里雲購買伺服器。本人購買的是Windows Server 2008,剛開始購買了基於Linux的各種系統(Ubuntu、CentOS、AliyunLinx、Debian),由於沒有Linux操作基礎,最後都沒有鼓搗成功,還是先用Windows Server練練手,等了解了大體流程之後在遷移到Linux上。這是我購買的阿里雲ECS實例

    2
    之後使用Windows操作系統自帶的「遠程桌面連接」工具直接連接到遠程伺服器:
    連接成功之後就會進入到熟悉的Windows操作系統的桌面了,之後就可以安裝各種部署的軟體,如JDK、MySQL Database、Tomcat等常用的工具,和在本機上操作並無不同。

    3
    購買域名
    伺服器可以正常訪問了,那麼接下來就需要購置一個域名,通過域名即可跳轉到相應的伺服器IP,進而讓所有的人都可以訪問。
    由於我的伺服器是在阿里雲購買的,阿里雲和萬網合並了,那麼直接在阿里雲中就可以一站式搞定。

    4
    stevejrong.top即我購買的域名。
    選擇一個域名後,點擊「解析」以將域名映射到剛才開通的伺服器上:
    這里萬網做了詳細的介紹,在此就不多講如何映射了。

    5
    域名備案
    要想真正讓所有人都能訪問網站,那麼就需要備案。由於伺服器是在阿里雲購置的,而阿里雲和萬網的服務現在已經合並,所以可以輕松申請備案。
    部署項目
    域名和伺服器都准備好了,那麼現在可以發布項目了。
    這里我採用了Nginx反向代理伺服器和Tomcat容器組合共同來支撐整個網站的運行。Nginx負責攔截並轉發客戶端發來的請求,它並不做頁面的解析等工作,這些工作都交給Tomcat去處理,因為Nginx擅長處理請求,是一個高性能的反向代理伺服器,它幾乎沒有處理Servlet請求的能力,所以要配合一個能夠處理Servlet的容器共同協作,當然,Servlet容器有很多,如Resin、JBoss、Tomcat、GlassFish等等,選擇Servlet容器就因人而異了,看自己喜歡用什麼,還有一些適應的場景和環境。沒有最好的,只有最適合的。Tomcat也未必最垃圾,只是看操作者的水平,能否合理優化是一個難題

    安裝和配置Nginx

    解壓後得到如下幾個文件和文件夾:

    打開conf目錄下的nginx.conf文件,這個文件是Nginx伺服器的配置文件:

    配置代碼和解釋如下:
    #user nobody;

    #工作進程數
    worker_processes 2;

    #錯誤日誌
    #error_log logs/error.log;
    #error_log logs/error.log notice;
    #error_log logs/error.log info;

    #進程保存文件
    #pid logs/nginx.pid;

    #等待事件
    events {

    #每個進程的最大連接數(最大連接數=連接數 * 進程數)
    worker_connections 2048;
    }

    http {

    #文件擴展名和文件類型映射
    include mime.types;

    #默認文件類型
    default_type application/octet-stream;

    #日誌的輸出格式
    #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
    # '$status $body_bytes_sent "$http_referer" '
    # '"$http_user_agent" "$http_x_forwarded_for"';

    #請求日誌的保存位置
    #access_log logs/access.log main;

    #是否開啟發送文件支持
    sendfile on;
    #tcp_nopush on;

    #活動連接超時時間
    #keepalive_timeout 0;
    keepalive_timeout 65;

    #是否開啟gzip壓縮支持
    #gzip on;

    #第一個虛擬主機
    server {

    #監聽到的埠
    listen 80;

    #主機名稱
    server_name www.stevejrong.top;

    #設置字元編碼格式
    #charset koi8-r;

    #本地虛擬主機的訪問日誌
    #access_log logs/host.access.log main;

    ❽ Nginx作為上傳圖片伺服器的時候,java.net.SocketException: Permission denied: connect

    lnmp架構 直接放nginx的web文件夾中,通過cgi解析php返回給nginx,如果是lnmpa架構,就是多了個apache,nginx負責分發請求,然後apache調用php_mod解析php,最後返回給nginx

    如果是負載均衡,nginx分發請求,每個請求可能請求不同的伺服器,但是每個伺服器的網站程序應該是一致的,並且每個伺服器上都部署了php環境和程序,然後返回給請求者nginx輸出頁面。

    ❾ 請問學好JavaSE需要學習哪些內容呢

    互聯網行業目前還是最熱門的行業之一,許多想入行互聯網的人都會選擇Java學習,發展前景非常好,普通人也可以學習。

    如果想達到工作標准可以參考下面的內容:

    1.Java SE部分 初級語法,面向對象,異常,IO流,多線程,Java Swing,JDBC,泛型,註解,反射等。

    2.資料庫部分,基礎的sql語句,sql語句調優,索引,資料庫引擎,存儲過程,觸發器,事務等。

    3. 前端部分, HTML5 CSS3 JS, HTML DOM Jquery BootStrap等。

    4. Java EE部分,Tomcat和Nginx伺服器搭建,配置文件,Servlet,JSP,Filter,Listener,http協議,MVC等。

    5. 框架部分,每個框架都可以分開學,在去學如何使用SSM 或者SSH框架,如何搭建,如何整合。開發中為什麼會用框架,Rest是啥?Spring為啥經久不衰,底層如何實現等。

    6.23種設計模式,掌握常用的,比如單例模式的多種實現,責任鏈模式,工廠模式,裝飾器模式等,了解常用場景。

    7. 基礎演算法和數據結構,八大排序演算法,查找演算法。

    8. 熟練使用maven等構建工具,git等版本控制工具,熟悉常用linux命令,log4j,bug,junit單元測試,日誌列印工具,Redis等NoSql。

    想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

    祝你學有所成,望採納。

    ❿ 需要安裝的軟體放在linux的哪個目錄下

    默認目錄一般建議為 /usr。Linux的目錄是有一個統一規范的,這個規范的作用是保證任何一個軟體都能找到任何另一個軟體、文件,一般可以運行的文件放在/bin或者/usr/bin、庫文件/lib或/usr/lib,其餘文件也都有自己的地方。 安裝流程如下:

    1、進入官網,點擊「jdk download」

    熱點內容
    sqlmaxvarchar 發布:2024-05-19 23:24:02 瀏覽:702
    linux配置網卡命令 發布:2024-05-19 23:22:57 瀏覽:504
    python查看進程 發布:2024-05-19 22:59:37 瀏覽:158
    androidhtml顏色 發布:2024-05-19 22:58:34 瀏覽:847
    米3系統存儲和內存設備 發布:2024-05-19 22:50:50 瀏覽:214
    途樂有哪些越野配置 發布:2024-05-19 22:49:53 瀏覽:673
    php檢測變數 發布:2024-05-19 22:45:31 瀏覽:322
    結構與演算法 發布:2024-05-19 22:32:22 瀏覽:588
    ubuntuphp版本 發布:2024-05-19 21:59:12 瀏覽:929
    解壓文案館 發布:2024-05-19 21:58:54 瀏覽:871