Time of Update: 2018-12-06
客戶類和工廠類分開。消費者任何時候需要某種產品,只需向工廠請求即可。消費者無須修改就可以接納新產品。缺點是當產品修改時,工廠類也要做相應的修改。例子:追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory 1 interface Sample{ 2 public void say(); 3 } 4 5 class SampleA
Time of Update: 2018-12-06
<s:token />標籤防止重複提交,用法如下:第一步:在表單中加入<s:token /><s:form action="helloworld_other" method="post" namespace="/test"> <s:textfield name="person.name"/><s:token/><s:submit/> </s:form>第二步:<action
Time of Update: 2018-12-06
包範圍資源檔在一個大型應用中,整個應用有大量的內容需要實現國際化,如果我們把國際化的內容都放置在全域資源屬性檔案中,顯然會導致資源檔變的過於龐大、臃腫,不便於維護,這個時候我們可以針對不同模組,使用包範圍來組織國際化檔案。 方法如下:
Time of Update: 2018-12-06
什麼是JPAJPA(Java Persistence
Time of Update: 2018-12-06
代理模式給某一個對象提供一個代理對象,並由代理對象控制對來源物件的引用。代理就是一個人或一個機構代表另一個人或者一個機構採取行動。某些情況下,客戶不想或者不能夠直接引用一個對象,代理對象可以在客戶和目標對象直接起到中介的作用。用戶端分辨不出代理主題對象與真實主題對象。代理模式可以並不知道真正的被代理對象,而僅僅持有一個被代理對象的介面,這時候代理對象不能夠建立被代理對象,被代理對象必須有系統的其他角色代為建立並傳入。例子: 1 interface Demo{ 2 public void
Time of Update: 2018-12-06
Person.java: 1 @Entity 2 public class Person { 3 @Id 4 @GeneratedValue 5 private Integer id; 6 @Column(length=10,nullable=false) 7 private String name; 8 @OneToOne(cascade=CascadeType.ALL,optional=false) 9
Time of Update: 2018-12-06
<action name="helloworld" class="com.jim.action.HelloWorldAction" method="execute" ><result name="success">/WEB-INF/page/hello.jsp</result></action>result配置類似於struts1中的forward,但struts2中提供了多種結果類型,常用的類型有: dispatcher(預設值)、
Time of Update: 2018-12-06
Order.java: 1 import java.util.HashSet; 2 import java.util.Set; 3 4 import javax.persistence.CascadeType; 5 import javax.persistence.Column; 6 import javax.persistence.Entity; 7 import javax.persistence.FetchType; 8 import javax.persistence.Id; 9
Time of Update: 2018-12-06
Struts2是在WebWork2基礎發展而來的。和struts1一樣, Struts2也屬於MVC架構。不過有一點大家需要注意的是:儘管Struts2和Struts1在名字上的差別不是很大,但Struts2和Struts1在代碼編寫風格上幾乎是不一樣的。那麼既然有了Struts1,為何還要推出Struts2。主要是因為Struts2有以下優點:1. 在軟體設計上Struts2沒有像struts1那樣跟Servlet API和struts
Time of Update: 2018-12-06
要自訂攔截器需要實現com.opensymphony.xwork2.interceptor.Interceptor介面:public class PermissionInterceptor implements Interceptor {private static final long serialVersionUID = -5178310397732210602L;public void destroy() { }public void init() { }public
Time of Update: 2018-12-06
property標籤property標籤用於輸出指定值:<s:set name="name" value="'kk'" /><s:property
Time of Update: 2018-12-06
第一步:在WEB-INF/lib下加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar。這兩個檔案可以從http://commons.apache.org/下載。 第二步:把form表的enctype設定為:“multipart/form-data“,如下: <form enctype="multipart/form-data" action="${pageContext.request.contextPath}/xxx.action"
Time of Update: 2018-12-06
假設我們的訪問地址為:http://localhost:8080/struts2/test/helloworld,那麼改成 http://localhost:8080/structs2/test/sdf/sfs/aaa/helloworld
Time of Update: 2018-12-06
在預設的設定檔struts.xml 中加入如下配置:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name=
Time of Update: 2018-12-06
在上學的時候,資料庫之中就講過資料庫範式,現在突然想複習下,就上網查了下發現還是自己親自理一遍比較清晰先引用百度百科中的一段話: 關聯式資料庫中的關係必須滿足一定的要求,即滿足不同的範式。 目前關聯式資料庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、第四範式(4NF)、第五範式(5NF)和第六範式(6NF)。滿足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進一步滿足更多要求的稱為第二範式(2NF),其餘範式以次類推。一般說來,資料庫只需滿足第三範式(3N
Time of Update: 2018-12-06
兩個或多個欄位組成的主鍵,我們叫聯合主鍵。在物件導向中,我們用JPA怎麼定義這種情況呢?怎麼定義聯合主鍵?用物件導向的思想來思考的話,聯合主鍵裡的複合主鍵(欄位),可以把它看成一個整體,然後採用一個主鍵類來描述這個複合主鍵的欄位。關於聯合主鍵類,大家一定要遵守以下幾點JPA規範:必須提供一個public的無參數建構函式。必須實現序列化介面。必須重寫hashCode()和equals()這兩個方法。這兩個方法應該採用複合主鍵的欄位作為判斷這個對象是否相等的。聯合主鍵類的類名結尾一般要加上PK兩個字
Time of Update: 2018-12-06
文章目錄 ibatis的優點(與JDBC相比):缺點: 在Student.xml中添加: <select id="selectStudentByName" parameterClass="String" resultClass="Student"> select * from student where name like
Time of Update: 2018-12-06
文章目錄 開發JPA依賴的jar檔案 開發JPA依賴的jar檔案注意jar檔案不能放在含有中文或是含有空格的路徑下,否則可能會出現找不到類或是編譯失敗的錯誤。Hibernate核心包(8個檔案):hibernate-distribution-3.3.1.GA.ZIP hibernate3.jarlib\bytecode\cglib\hibernate-cglib-repack-2.1_3.jar
Time of Update: 2018-12-06
命令模式把一個請求或者操作封裝到一個對象中。命令模式把發出命令的責任和執行命令的責任分割開,委派給不同的對象。命令模式允許請求的一方和發送的一方獨立開來,使得請求的一方不必知道接收請求的一方的介面,更不必知道請求是怎麼被接收,以及操作是否執行,何時被執行以及是怎麼被執行的。系統支援命令的撤消。 說白了就是把一個 處理行為 作為參數傳入方法 例子: 1 interface Command{ 2 public void process(int[] target); 3 } 4 5
Time of Update: 2018-12-06
Student.java: 1 @Entity 2 public class Student { 3 @Id 4 @GeneratedValue 5 private Integer id; 6 @Column(length=10,nullable=false) 7 private String name; 8 @ManyToMany 9