java項目一------OA報名與審覈管理系統

採用JavaWeb技術實現採用MVC和分層開發,通過本項目可以很熟練的掌握JavaWeb(Servlet、JSP、EL、標籤)的開發技術
項目的實現:javaweb技術–servlet,jsp,jstl,el;
數據庫實現:MYSQL。
數據的增刪改查:DButils。(數據庫操作框架)
MVC分層開發。
服務器:Tomcat
設計模式:單例,工廠,裝飾,策略。
系統軟件層次設計:
UI (表現層) BUSINESS(業務邏輯層) DAO(數據訪問層)
view(jsp) model(javabean/EJB) control(servlet)
UI=view+ control
bus+dao=model
javabean—-pojo簡單java模型可以對數據封裝
瀏覽器————————————————————————-數據庫
servlet規範:control控制器藉助於域對象—->JSP,view視圖
業務處理層:service具體的邏輯
DAO:負責從數據庫CURD
MODEL:javabean數據封裝
java的四大域對象:
1.ServletContext:Web應用被加載進容器時創建代表整個web應用的ServletContext對象,當服務器關閉或Web應用被移除時,ServletContext對象跟着銷燬。在不同Servlet 之間轉發
this.getServletContext().getRequestDispatcher(“/servlet/Demo10Servlet”).forward(request, response);
2.Request:在service 方法調用前由服務器創建,傳入service方法。整個請求結束,request生命結束。
作用範圍:整個請求鏈(請求轉發也存在)。
3.Session:HttpSession 在服務器中,爲瀏覽器創建獨一無二的內存空間,在其中保存會話相關的信息。在第一次調用 request.getSession() 方法時,服務器會檢查是否已經有對應的session,如果沒有就在內存 中創建一個session並返回。
當一段時間內session沒有被使用(默認爲30分鐘),則服務器會銷燬該session。
如果服務器非正常關閉(強行關閉),沒有到期的session也會跟着銷燬。
如果調用session提供的invalidate() ,可以立即銷燬session。作用範圍:一次會話
4.pageContext:當對JSP的請求時開始,當響應結束時銷燬。其身上提供了forward和include方法,簡化重定向和轉發的操作
ie ——->web服務器———-reuest
response
servletconfig
servletcontext
session
cookie(服務器傳入對象)——–>servlet——->數據庫操作軟件——–>數據庫
注意:1.serlertconfig—–servlet配置文件中init-parm,web容器在創建servlet實例對象時,會自動將初始化參數封裝成servletconfig對象,並在servlet的init時將servletconfig傳給servlet即可得到具體的servlet初始化信息。
servlet extend httpservlet
private servletconfig;
doget(httpservlet request,httpservlet reponse){config.getinitparamer(data);}
dopost(httpservlet request,httpservlet reponse)(this.getservletconfig.getinitparamer())
init(servletconfig config)
{ this.config=config;
}
2. servletcontext對象 代表當前的web應用, 可以通過servletconfig.getservletcontext()得到對象
servletcontext.getcontext()得到應用
多個servlet 共享一個servletcontext對象來實現數據共享
作用:讀取web應用的初始化參數: this.getservletcontext.getinitparamter()
實現servlet的轉發:(轉發:借錢找我我幫你借錢,重定向1次用的多,借錢找我我讓你自己找他2次,登錄/購買)rd=this.getservletcontext.getrequestDispatcher(“1.jsp”)
rd.forward(request,response)
讀取資源文件:path=this.servlcontext.getrealpath()
fileinputstream fi=new fileinputsream(path)
property pro =new properties()
url=pro.getproperty(url)
3.response對象:響應對象
方法:設置狀態嗎setStatus /發送數據getWriter /從定向sendRedirect()
4.request對象://用戶的一次請求
/轉發 getRequestDispatcher 調用該對象的forward方法 轉發是服務器行爲,重定向是客戶端行爲
/.getparamter /. request getparameter(name)/map=request getparameterMap()//請求參數字符串數組
/getAttribute(String name):這個方法是從Request域中獲取值
getAttributeNames():這個方法是獲取Request域中獲取所有的字段名稱
setAttribute(String name,Object value):這個方法是設置Request域中的屬性值
BeanUtils:操縱beans的屬性.setAttributes()
BeanUtils.populate的作用:映射的過程就是將頁面中的內容先用request獲得,然後再將之轉換爲Map(這裏用request.getParameterMap())
最後使用BeanUtils.populate(USER,map)方法將頁面各個屬性映射到bean中。之後我們就可以這樣使用bean.getXxxx()來取值了。USER是bean的一種例子
UserActionForm uForm = (UserActionForm) form;
// 構造一個User對象
User user = new User();
// 賦值
BeanUtils.copyProperties(user, uForm);
// 然後調用JDBC、或操作Hibernate 持久化對象User到數據庫
5.會話:sesssion對象—–cookie:客戶端技術,程序將各個用戶的數據以cookie的形式寫給用戶的瀏覽器,當用戶瀏覽器訪問服務器的資源時會帶着各自的數據去。response.addCookie()
——session:服務器端的技術,服務器爲每一個瀏覽器創建一個獨享的session對象,
用戶可以放數據和取數據從session對象中
Session=request.getSession();//若沒有會創建session +id會以cookie傳回瀏覽器
Session.setAttribute();
obj=Session.getAttribute(name,obj);
若cookie被禁止 URLEncoder.encode(“index.jsp?id=3”,”UTF-8”)

反射:加載類解析組成部分:
Class 代表某類字節碼文件
—–Class clasz =Class.forName(完整名字)用於加載字節碼文件到內存
claz. getConstructor
getMethod
getFiled
內省:introspector類
javabean: 類必須是具體的和公共的,並且具有無參數的構造器,
getXxx(),用來獲取屬性xxx。
setXxx(),用來修改屬性xxx。
.getBeanInfo()//得到bean對象
pd=getPropertyDescriptor—–pd.getreadmethod ——-method=pd.getwritemethod//設置屬性 method.invoke(people 45)

發佈了17 篇原創文章 · 獲贊 5 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章