⑴ 如何在eclipse上引入前端框架
在Eclipse中點擊Help —> Eclipse Marketplace,搜索JBoss Tools,點擊install,選擇要安裝的JBoss插件(我選擇了全部),一路默認即可,安裝完後重啟Eclipse。
重新打開Eclipse後,右鍵New -> Other,輸入hibernate會提示
image_1b2vd9s8718mprui1988vl1174l9.png-28.8kB
表明Hibernat插件安裝成功。
2.新建項目,並搭建Hibernate環境:
右鍵New -> Java Project(僅需測試Hibernate,故沒有新建Web Project),右鍵項目名,New -> Folder,命名為lib,復制需要的hibernate的JAR文件和Mysql的JAR文件到該文件夾下:
image_1b2vdkqcqblkme7k691h8gqc716.png-11.6kB
右鍵這些jar文件,Build Path -> Add to Build Path。
3.創建持久化Java類:(在這里用一個新聞類News.java測試)
import java.util.Date;
public class News {
private Integer id;
private String title;
private String content;
private Date date;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public News(String title, String content, Date date) {
super();
this.title = title;
this.content = content;
this.date = date;
}
public News() {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "News [id=" + id + ", title=" + title + ", content=" + content + ", date=" + date + "]";
}
}
⑵ springmvc和ssh,ssm的區別
首先:
SSH框架是Struct+Spring+Hibernate的總稱
SSM框架是Spring-MVC+Spring+MyBatis的總稱
應用當中的區別主要體現在以下3個方面:
1、Spring-MVC是方法攔截(實現完全解耦),Struct是類攔截。
2、請求Struct的時候通過struts.xml配置文件,請求Spring-MVC的時候直接通過路徑攔截註解找到。
3、使用SSH框架sql語句寫在Dao層,而使用SSM框架sql語句是寫在配置文件中的。
⑶ 前端緩存的理解 或者 前端數據持久化的理解(強制緩存、協商緩存)
緩存可以說是性能優化中簡單高效的一種優化方式了。一個優秀的緩存策略可以縮短網頁請求資源的距離,減少延遲,並且由於 緩存文件可以重復利用 ,還可以減少帶寬,降低網路負荷。
對於一個數據請求來說,可以分為發起 網路請求、後端處理、瀏覽器響應 三個步驟。瀏覽器緩存可以幫助我們在第一和第三步驟中優化性能。比如說直接使用緩存而不發起請求,或者發起了請求但後端存儲的數據和前端一致,那麼就沒有必要再將數據回傳回來,這樣就減少了響應數據。
①不存在該緩存結果和緩存標識,強制緩存失效,則直接向伺服器發起請求
②存在該緩存結果和緩存標識,但該結果已失效,強制緩存失效,則使用協商緩存
③存在該緩存結果和緩存標識,且該結果尚未失效,強制緩存生效,直接返回該結果
控制強制緩存的欄位分別是Expires和Cache-Control,其中Cache-Control優先順序比Expires高。
Cache-Control、Expires都是緩存到期時間,Cache-Control是相對值,Expires是絕對值,即再次發送請求時,如果時間沒到期,強制緩存生效。
註:在無法確定客戶端的時間是否與服務端的時間同步的情況下,Cache-Control相比於expires是更好的選擇,所以同時存在時,只有Cache-Control生效。
①協商緩存生效,返回304
②協商緩存失效,返回200和請求結果
這里我們以博客的請求為例,狀態碼為灰色的請求則代表使用了強制緩存,請求對應的Size值則代表該緩存存放的位置,分別為from memory cache 和 from disk cache。那麼from memory cache 和 from disk cache又分別代表的是什麼呢?什麼時候會使用from disk cache,什麼時候會使用from memory cache呢?
from memory cache代表使用 內存中的緩存 ,from disk cache則代表使用的是 硬碟中的緩存 ,
⑷ 論程序員十大關系之一前端與後端關系
代碼在開發過程中,伺服器主要是數據的處理和存儲工作,前端主要是用戶的展現和體驗,在web領域還比較好區分,後端有後端的框架,前端有前端的框架,之間用json等格式預定好介面,就能保證相互的協調。
但是, 游戲 的前端特別的重,裡面有大量玩家數據,同時,還是需要實時性的去模擬玩家數據,確保和後端保團凳持一致。在開發過程中,我一直認為一個基本原則,能夠讓後端完成的工作,就盡量讓後端完成,盡量讓前端變薄一點,盡可能的讓後端變厚一點。盡量把苦差事給後端。主要原因有幾個,後端一般都是強語言,語法錯誤有很強的檢測能力,而且後端的運行環境是可配置的,數據好持久化,有管理後台方便監控。
不過在 游戲 實時性交互很強的時候,裡面元素很多,茄殲比如,王者榮耀或者吃顫或沖雞 游戲 ,一般才有的都是幀同步方式,這種模式下,後端相對比較輕一點,只要做好轉發和數據驗證就好了。
⑸ cookie前端存儲有哪幾種
1、cookie
HTTP cookie,通常直接叫做cookie,是客戶端用來存儲數據的一種選項,它既可以在客戶端設置也可以在伺服器端設置。cookie會跟隨任意HTTP請求一起發送。
優點:兼容性好
缺點:一是增加了網路流量;二則是它的數據容量有限,最多隻能存儲4KB的數據,瀏覽器之間各有不同;三是不安全。
2、userData
userData是微軟通過一個自定義行為引入的持久化用戶數據的概念。用戶數據允許每個文檔最多128KB數據,每個域名最多1MB數據。
缺點:userData不是 web 標準的一部分,只有IE支持。
3、web存儲機制
web storage,包括兩種:sessionStorage 和 localStorage,前者嚴格用於一個瀏覽器會話中存儲數據,因為數據在瀏覽器關閉後會立即刪除;後者則用於跨會話持久化地存儲數據。
缺點:IE不支持 SessionStorage,低版本IE ( IE6, IE7 ) 不支持 LocalStorage,並且不支持查詢語言
4、indexedDB
indexed Database API,簡稱為indexedDB,是在瀏覽器中保存結構化數據的一種「資料庫」。它類似SQL資料庫的結構化數據存儲機制,代替了廢棄已久的web SQL Database API,它能夠在客戶端存儲大量的結構化數據,並且使用索引高效檢索的API。
缺點:兼容性不好,未得到大部分瀏覽器的支持。
5、Flash cookie
Flash本地存儲,類似於HTTP cookie,它是利用 SharedObject類來實現本地存儲信息。它默認允許每個站點存儲不超過100K的數據,遠大於cookie,而且能夠跨瀏覽器。
缺點:瀏覽器需安裝 Flash 控制項,畢竟它是通過Flash的類來存儲。所幸的是,沒有安裝Flash的用戶極少。
6、Google Gears
Google Gears是Google在07年發布的一個開源瀏覽器插件,Gears 內置了一個基於SQLite的嵌入式 SQL資料庫,並提供了統一API 對 資料庫進行訪問,在取得用戶授權之後,每個站點可以在SQL資料庫中存儲「不限大小」的數據。
缺點:需要安裝 Google Gears 組件
⑹ 前端本地存儲的 3 種方法 cookie、localStorage、sessionStorage
當網頁要發http請求時,瀏覽器會先檢查是否有相應的cookie,有則自動添加在request header中的cookie欄位中。這些是瀏覽器自動幫我們做的,而且每一次http請求瀏覽器都會自動幫我們做。這個特點很重要,因為這關繫到「什麼樣的數據適合存儲在cookie中」。
存儲在cookie中的數據,每次都會被瀏覽器自動放在http請求中,如果這些數據並不是每個請求都需要發給服務端的數據,瀏覽器這設置自動處理無疑增加了網路開銷;但如果這些數據是每個請求都需要發給服務端的數據(比如身份認證信息),瀏覽器這設置自動處理就大大免去了重復添加操作。所以對於那種設置「每次請求都要攜帶的信息(最典型的就是身份認證信息)」就特別適合放在cookie中,其他類型的數據就不適合了。
不同的瀏覽器存放的cookie位置不一樣,也是不能通用的。
cookie的存儲是以域名形式進行區分的,不同的域下存儲的cookie是獨立的。
我們可以設置cookie生效的域(當前設置cookie所在域的子域),也就是說,我們能夠操作的cookie是當前域以及當前域下的所有子域
一個域名下存放的cookie的個數是有限制的,不同的瀏覽器存放的個數不一樣,一般為20個。
每個cookie存放的內容大小也是有限制的,不同的瀏覽器存放大小不一樣,一般為4KB。
cookie也可以設置過期的時間,默認是會話結束的時候,當時間到期自動銷毀
cookie值既可以設置,也可以讀取。
我們通過document.cookie來獲取當前網站下的cookie的時候,得到的字元串形式的值,它包含了當前網站下所有的cookie(為避免跨域腳本(xss)攻擊,這個方法只能獲取非 HttpOnly 類型的cookie)。它會把所有的cookie通過一個分號+空格的形式串聯起來,例如username=chenfangxu; job=coding
要想修改一個cookie,只需要重新賦值就行,舊的值會被新的值覆蓋。但要注意一點,在設置新cookie時,path/domain這幾個選項一定要舊cookie 保持一樣。否則不會修改舊值,而是添加了一個新的 cookie。
把要刪除的cookie的過期時間設置成已過去的時間,path/domain/這幾個選項一定要舊cookie 保持一樣。
如果我們想長時間存放一個cookie。需要在設置這個cookie的時候同時給他設置一個過期的時間。如果不設置,cookie默認是臨時存儲的,當瀏覽器關閉進程的時候自動銷毀
使用方法: setCookie('username','cfangxu',30)
domain指定了 cookie 將要被發送至哪個或哪些域中。默認情況下,domain 會被設置為創建該 cookie 的頁面所在的域名,所以當給相同域名發送請求時該 cookie 會被發送至伺服器。
瀏覽器會把 domain 的值與請求的域名做一個尾部比較(即從字元串的尾部開始比較),並將匹配的 cookie 發送至伺服器。
cookie 一般都是由於用戶訪問頁面而被創建的,可是並不是只有在創建 cookie 的頁面才可以訪問這個 cookie。 因為安全方面的考慮,默認情況下,只有與創建 cookie 的頁面在同一個目錄或子目錄下的網頁才可以訪問。即path屬性可以為伺服器特定文檔指定cookie,這個屬性設置的url且帶有這個前綴的url路徑都是有效的。
domain是域名,path是路徑,兩者加起來就構成了 URL,domain和path一起來限制 cookie 能被哪些 URL 訪問。 所以domain和path兩個個選項共同決定了cookie何時被瀏覽器自動添加到請求頭部中發送出去。如果沒有設置這兩個選項,則會使用默認值。domain的默認值為設置該cookie的網頁所在的域名,path默認值為設置該cookie的網頁所在的目錄。
通常 cookie 信息都是使用HTTP連接傳遞數據,這種傳遞方式很容易被查看,所以 cookie 存儲的信息容易被竊取。假如 cookie 中所傳遞的內容比較重要,那麼就要求使用加密的數據傳輸。
secure選項用來設置cookie只在確保安全的請求中才會發送。當請求是HTTPS或者其他安全協議時,包含 secure 選項的 cookie 才能被發送至伺服器。
把cookie設置為secure,只保證 cookie 與伺服器之間的數據傳輸過程加密,而保存在本地的 cookie文件並不加密。就算設置了secure 屬性也並不代表他人不能看到你機器本地保存的 cookie 信息。機密且敏感的信息絕不應該在 cookie 中存儲或傳輸,因為 cookie 的整個機制原本都是不安全的
注意:如果想在客戶端即網頁中通過 js 去設置secure類型的 cookie,必須保證網頁是https協議的。在http協議的網頁中是無法設置secure類型cookie的。
這個選項用來設置cookie是否能通過 js 去訪問。默認情況下,cookie不會帶httpOnly選項(即為空),所以默認情況下,客戶端是可以通過js代碼去訪問(包括讀取、修改、刪除等)這個cookie的。
當cookie帶httpOnly選項時,客戶端則無法通過js代碼去訪問(包括讀取、修改、刪除等)這個cookie。 在客戶端是不能通過js代碼去設置一個httpOnly類型的cookie的,這種類型的cookie只能通過服務端來設置。
HTML5新方法,不過IE8及以上瀏覽器都兼容。
生命周期:持久化的本地存儲,除非主動刪除數據,否則數據是永遠不會過期的。
存儲的信息在同一域中是共享的。
當本頁操作(新增、修改、刪除)了localStorage的時候,本頁面不會觸發storage事件,但是別的頁面會觸發storage事件。
大小:據說是5M(跟瀏覽器廠商有關系)
localStorage本質上是對字元串的讀取,如果存儲內容多的話會消耗內存空間,會導致頁面變卡
localStorage受同源策略的限制
當storage發生改變的時候觸發。 當頁面對storage的操作會觸發其他頁面的storage事件,storage事件是可以跨頁面通訊的,在你對storage對象進行任何操作的時候,都會觸發storage事件,事件里邊包括包括:
storage事件使用參考
對於sessionStorage和localStorage上的任何更改都會觸發storage事件,但storage事件不會區分這兩者;
其實跟localStorage差不多,也是本地存儲,會話本地存儲
和 localStorage 的API完全相同
用於本地存儲一個會話(session)中的數據,這些數據只有在同一個會話中的頁面才能訪問並且當會話結束後數據也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。也就是說只要這個瀏覽器窗口沒有關閉,即使刷新頁面或進入同源另一頁面,數據仍然存在。關閉標簽頁後,sessionStorage即被銷毀,或者在新的標簽頁打開同源的另一個頁面,sessionStorage也是沒有的。
應用的場景有,比如說我們都知道,在頁面刷新的時候,我們寫的js里邊的變數函數等等的,內存會被釋放掉,那麼這個時候可以用sessionStorage來存儲一些不想被釋放掉內存的數據,比如說記錄一個滾動條的位置,或者播放器的進度等等
在本地(瀏覽器端)存儲數據
sessionStorage和localStorage 都受到同源策略限制,就是跨域問題,在訪問sessionStorage和localStorage 的時候,頁面必須在同一個域名,使用同一個協議,並且一個埠
sessionStorage比localStorage更嚴苛一點,除了協議、主機名、埠外,還要求在同一窗口(也就是瀏覽器的標簽頁)下。
localStorage是永久存儲,除非手動刪除。
sessionStorage當會話結束(當前頁面、標簽頁關閉的時候,自動銷毀)
cookie的數據會在每一次發送http請求的時候,同時發送給伺服器而localStorage、sessionStorage不會。
sessionStorage和localStorage 也有大小限制,相比cookie大了很多,是5M
sessionStorage和localStorage只能通過客戶端操作,cookie既可以通過客戶端操作又可以通過服務端操作
⑺ 做一個完整的Java Web項目需要掌握哪些技術
分享作為千鋒的Java開發工程師需要掌握的專業技能,大家可以參考一下。
一、熟練的使用Java語言進行面向對象程序設計,有良好的編程習慣,熟悉常用的JavaAPI,包括集合框架、多線程(並發編程)、I/O(NIO)、Socket、JDBC、XML、反射等。
二、熟悉基於JSP和Servlet的JavaWeb開發,對Servlet和JSP的工作原理和生命周期有深入了解,熟練的使用JSTL和EL編寫無腳本動態頁面,有使用監聽器、過濾器等Web組件以及MVC架構模式進行JavaWeb項目開發的經驗。
三、對Spring的IoC容器和AOP原理有深入了解,熟練的運用Spring框架管理各種Web組件及其依賴關系,熟練的使用Spring進行事務、日誌、安全性等的管理,有使用SpringMVC作為表示層技術以及使用Spring提供的持久化支持進行Web項目開發的經驗,熟悉Spring對其他框架的整合。
四、熟練的使用Hibernate、MyBatis等ORM框架,熟悉Hibernate和MyBatis的核心API,對Hibernate的關聯映射、繼承映射、組件映射、緩存機制、事務管理以及性能調優等有深入的理解。
五、熟練的使用HTML、CSS和JavaScript進行Web前端開發,熟悉jQuery和Bootstrap,對Ajax技術在Web項目中的應用有深入理解,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars)進行項目開發的經驗。
六、熟悉常用的關系型資料庫產品(MySQL、Oracle),熟練的使用SQL和PL/SQL進行資料庫編程。
七、熟悉面向對象的設計原則,對GoF設計模式和企業應用架構模式有深入的了解和實際開發的相關經驗,熟練的使用UML進行面向對象的分析和設計,有TDD(測試驅動開發)和DDD(領域驅動設計)的經驗。
八、熟悉Apache、NginX、Tomcat、WildFly、Weblogic等Web伺服器和應用伺服器的使用,熟悉多種伺服器整合、集群和負載均衡的配置。
九、熟練的使用產品原型工具Axure,熟練的使用設計建模工具PowerDesigner和EnterpriseArchitect,熟練的使用Java開發環境Eclipse和IntelliJ,熟練的使用前端開發環境WebStorm,熟練的使用軟體版本控制工具SVN和Git,熟練的使用項目構建和管理工具Maven和Gradle。