javaweb總結范文
總結在一個時期、一個年度、一個階段對學習和工作生活等情況加以回顧和分析的一種書面材料,它能使我們及時找出錯誤并改正,讓我們一起認真地寫一份總結吧。總結怎么寫才不會流于形式呢?下面是小編精心整理的javaweb總結范文,僅供參考,希望能夠幫助到大家。
javaweb總結范文1
在實現記事本的功能過程中,也不是很順利,基本的文件讀寫和保存文檔的復制、粘貼、刪除等功能還比較容易實現,但如何改變字體、字體顏色和背景顏色,就比較麻煩了,要實現字體顏色和背景顏色,首先要調用系統的調色板,再進行設置。但如何調用系統調色板?我是通過查閱幫助文檔來找到其調用方法的。像自動換行、設置字體等都是通過方法來調用,給相關事件加上監聽,在進行響應事件。整個程序中方法才是最關鍵的,也是最困難的。所以像查找、替換、轉到幾個功能我都不知道用什么方法,也由于時間有限,沒有完成其功能?傮w的感覺是對java有了一個全新的認識,現在感覺用java做小的`圖形用戶程序有些缺陷,但是在其的應用方面。尤其是有網絡方面的應用,在整個實訓我也嘗試過做一個小的畫圖軟件。但是由于時間關系還有一個是自身的知識的欠缺,最終這個事情被擱淺下來了。最后還是進行計事本的編寫。由于在做畫圖軟件時花了不了時間,所以現在的計事本的功能不是很全,如果有更多的時間,我會把這個記事體再完善一下,再把畫圖軟件也做出來。實訓的時間不長,但是我會在課外把它們的功能完善。然后再學習一下java和網絡的編程,體驗java的前沿技術。
在學習的過程中也體會到,遇到問題也要請教。不然的話自己一個人去做的話會花很多的時間,我在做這個記事本的時間,其中也問到過許多問題,通過同學的幫助下解決了,提高了程序的開發進程。其他的同學有問題的話我也是給他們盡量解決。我認為學習知識的過程當中就應該是相互學習相互進步的。
Java是面在的主流技術我會努力將它學好,現在我缺乏的是堅持不懈的精神,我會向他學習。
雖然學習java的路還很找,但我會繼續走下去。
javaweb總結范文2
1、In Action
(1)根據添加信息()來考慮表中的字段,進行建表。使用PD畫出ER圖。要注意字段的數據類型的確定以及建表要滿足三范式,減少數據冗余;
(2)表建好后,根據表中各個字段來建pojo中的屬性。要注意屬性的數據類型和字段的數據類型要一致;
。3)根據pojo中的屬性確定bean的屬性,直接拷貝即可,用于頁面展示。在bean中,統一使用String類型變量接收前臺頁面傳遞的參數;每個HTML表單對應一個bean。HTML表單中的字段和bean中的屬性一一對應。
(4)自頂向下,依次定出action、manager、dao。先寫出輪廓,跑通整個流程,再寫具體實現,一點點累加,便于調試錯誤;
。5)根據數據實體和具體業務邏輯,使用StarUML畫類圖,進行OOA和OOD,靈活運用設計模式。
。6)API命名:
CRUD:add,get,update,,[list]
嚴格區分單復數形式,單數表示對象,復數表示對象集合。
對象、屬性最好單個單詞。
。7)前后臺都要校驗。
。8)按照資源方式組織數據接口,對前端開發幫助很大。即通過REST來實現資源的增、刪、改、查。
。9)軟件開發,思路最重要!代碼開發多了,思路就有了。
a、一個版本一個版本遞增的開發; 每個版本增加一點內容;
b、總結開發思路;第一步怎么做,下一步怎么做?
c、用文檔記錄開發的思路,即第一個版本開發實現了什么功能以及開發步驟,下一個版本實現了什么功能等等?
d、程序員進行程序開發時,不要僅僅停留在代碼,要深入到底層的運行機制,才可以對程序的運行機制有更準備的把握;
。10)網頁模板
request到template.jsp文件(此文件假設包括三個部分,即title、banner、body)
web客戶——> title
banner———————>include:banner.jsp
body————————>include:showcart.jsp
。11)一步一步的定位。根據結果進行分析。
。12)分頁控件
假分頁:
基本思想是將所有的數據從數據庫中取出,只顯示有用的部分。靠的是程序的算法,實際上就是在ResultSet上進行操作。
真分頁:(數據庫中的一種實現)
任何數據庫都會提供分頁的函數操作:Oracle、MySQL(limit,即limit 開始的.記錄, 要查詢的行數)、SQL Server(top)
基本思想是在數據庫中編寫特定的SQL語句。程序中只讀取有用的部分,沒用的部分不會加載到內存中。
(13)
2、TIPS
(1)、VO就是POJO。
。2)、先做完基本功能,然后對輸入的數據進行驗證。主方法中代碼盡可能少,再考慮代碼的可重用性。
。3)、當發現代碼中重復地復制/粘貼時,就可以考慮將之形成為一個類進行調用。
。4)、在類的設計中,永遠不要去繼承一個已經實現好的類,只能繼承抽象類或實現接口。
。5)、一個設計良好的類,應重寫Object類中的equals()、hashCode()、toString()方法。
。6)、在action層中接收參數,要寫健壯,要做空指針處理。
(7)、業務邏輯放到manage層,如if...else...不要放在action層,放在manage層處理。
(8)、dao層要寫健壯,傳入的是bean或map,返回的是bean或list。
(9)、查詢:所有的記錄總數以及查詢第幾頁的數據;
。10)、多思考,嘗試用不同、多種方法去解決問題。(發散性思維)
。11)、當程序中有0、1這樣的數字或字符串出現時,最好用常量代替。常量名很重要,做到見名知意。
。12)、spring針對每一層(action.manager、dao)都有一個配置文件;ibatis有2個配置文件。sqlmap有namespace,每個實體類都對應一個xml配置文件。
(13)、類設計,編寫時先完成基本功能的實現,然后再對實現功能的代碼結構進行優化。
2、PS
。1)Java Web開發環境:JDK、IDE、java web服務器
JDK,一般指sun公司發布的JDK,也有其他的JDK,如IBM的JDK、BEA的JRocket等。從Java 5.0開始,Java web技術也稱為Java EE。Java EE應用程序的運行需要Java EE類庫的支持。
安裝好JDK后,設置JAVA_HOME環境變量以及將JDK下的bin目錄添加到PATH環境變量。
eclipse需要Java運行環境。
Eclipse WTP是Eclipse官方提供的web開發工具。
Java web服務器在Java EE規范中也叫做容器。
(2)web容器在啟動時,從web.xml文件中讀取配置信息,裝載web應用。
web容器運行時,不會檢測web.xml、struts配置文件的更新而重新加載它。
若struts框架不能處理的異常,會把錯誤拋給web容器。容器會查看web.xml文件中是否配置了元素。若存在,則返回元素的子元素指定的錯誤頁面。否則直接將錯誤拋給用戶。
。3)webApp部署好后,啟動Tomcat會自動發布webApp。首先是實例化Filter,并調用其init()方法初始化。然后根據的數值(數值為0或正數,數值越小越先加載)來依次加載servlet,并調用其init()方法進行初始化。
若沒有為servlet配置屬性,則當web應用啟動時servlet容器不會加載這個servlet,只有當用戶首次訪問此servlet時才加載。
。4)
web調試時,一定要服務器以調試模式啟動。然后在程序中打斷點,通過瀏覽器訪問,這樣程序運行到斷點處就會暫停運行。
。5)jsp放到WEB-INF文件夾中,可防止外界直接通過URL來訪問Jsp頁面,此時jsp一定要是servlet或action的后繼頁面,才可以被訪問到。
(6)EL表達式是JSP2.0規范,需要Tomcat支持的。Tomcat6才支持EL表達式。
(7)編碼
用戶提交的查詢數據(即get請求),默認采用的是ISO-8859-1編碼。
request.setCharacterEncoding("utf-8"); //設置request編碼方式,即設置使用utf-8來解析請求參數;
response.setCharacterEncoding("utf-8"); //設置response編碼方式
(8)JNDI
JNDI:為某個java對象起一個名字。如為Tomcat中的數據源起一個名字,從而讓程序可通過該名字訪問該數據源對象。(Tomcat內置了DBCP的數據源實現)
若web應用訪問了由servlet容器管理的某個JNDI資源,需要在web.xml中對這個JNDI資源的引用聲明,表示資源引用的元素為。
。9)session
servlet容器為HttpSession分配唯一標識符sessionID。servlet容器把sessionID作為cookie保存在客戶的瀏覽器中。若瀏覽器禁止cookie,servlet容器可重寫客戶請求的url,把sessionID添加到url信息中。HttpServletResponse接口提供了重寫url的方法:encodeURL(url)。
javaweb總結范文3
1.JSP運行原理
。1)用戶通過客戶端瀏覽器向服務器發送請求。
。2)JSP文件將JSP引擎編譯成Java的class文件,即servlet。
。3)將產生的servlet加載到內存執行。
。4)Servlet的運行結果以HTML(或XML)形式通過web服務器返回客戶端的瀏覽器。
2.web項目設計
(1)公開目錄 (2)web_INF目錄 (3)Class目錄
3.JSP的基本語法
。1)腳本元素:聲明、腳本段、表達式。
(2)腳本段:<%>
。4)表達式:<%=>
。5)EL表達式:${ }
(6)指令元素:<%>不在客戶端可見
用于包含其他文件可以是靜態文件,也可以是動態文件。?包含動態文件時
用傳 (建一值)
考點:
4.指令與動作的區別(include)
1.執行時間不同
指令<%@ include="" file=" ">是偏譯時包含靜態文件
動作?是運行時包含的文件
2.引入內容不同
指令<%@include file="relatirveURI">引入靜態文本(html.jsp)。
動作引入執行頁面或severlet的應答文本。
5.JSP內置對象
Out,request,response,session,application,page,pageContext,exception,config
request客戶端向服務端發送請求。
response用于服務器端封裝JSP處理請求后產生的結果。
response對象的send Redirect(url)方法相當于兩次請求。
而在網址不變情況下內部跳轉不同頁面,但依舊屬于同一次請求
6.session和cookie的區別
1.存放地點不同
Session存放在服務器端,cookie存放在客戶端的硬盤里
2.存活時間
session隨用戶訪問服務器而產生,隨客戶下線或超時而消失
3.安全性
session存放在服務器端,不能被修改,且隨客戶端瀏覽器的關閉而消失,安全性較好。Cookie存放在客戶端,安全性較差。
7.數據庫
java.sql.Driver
java.sql.DriverManager——加載驅動程序
java.sql.Connetion——表示數據庫連接對象,對數據庫一切操作都在這個基礎上
java.sql.Statement——執行SQL語句和返回結果
java.sql.ResultSet——結果集用來暫時存放數據庫查詢操作結果
8.編寫程序的步驟
1.裝載驅動程序
class.forName("com.mySQL.jdbc.Driver")
2.定義所需連接數據庫的地址
String mysqlURL="jdbc.mysql://host:port/dbName"
3.建立與數據庫的連接
Connection conn=DriverMannager.get Connection(url,"登錄數據庫用戶名","
密碼")
4.聲明并執行SQL語句
5.處理返回的結果
6.關閉對象
String driverStr="com.mysql.jdbc.Driver"
String connstr="jdbc:mysql://localhost:3306/book";
Class forName(driver Str)
Connection conn=DriverManager.getConnection(connstr."root"."123") 第4步:建立語句對象
Statement stmt=conn.createStatement()
第5步:聲明并執行SQL語句
String sql="select*from book";
ResultSet rs=stmt.executeQuery( sql);
第6步:
Statement接口的3個方法:1、ResultSet executeQuery(String sql)
2、int execute Update(String sql)
3、boolean execute(String sql)
ResultSet的方法:1、boolean next()
2、get xxx()
第7歩:rs.close() stmt.close() con.close()
注:關閉資源的順序與打開資源順序恰好相反。
第8步:異常處理
try{.........}catch(SQLExecption ex){.........}
9.Java Bean 組件(可重用)
組件:是一個獨立的模塊,外界可以不了解內部如何實現,只需通過其提供的接口對組件進行訪問即可,組件可重用。
特點:1、實現代碼重復使用;2、易編寫,易維護,易使用。
10.Java Bean類的編碼約定
1、類實現了java.io.Serializable接口
2、必須放在某個Package(包)中
3、類中如果有構造方法,那么這個方法是共有的,并且無參數
4、所有屬性都是私有的(private修飾)
5、get XXX:用來獲取屬性,此方法是共有的.
6、set XXX:用來設置屬性,此方法是共有的
7、對于boolean類型的成員變量允許使用“is”代替“get”和“set”
8、類中的普通方法不適合上面的命名規則,但這個方法必是public的。
3個標記:
網頁中創建JavaBean實例
用于為bean中的屬性賦值
用于獲取bean中屬性的值
id=”javaBean實例名” class=”javaBean對應的類名”設置的屬性
獲取JavaBean實例指令的屬性值,并將這個值轉換成字符串顯示到JSP頁面。
11.servlet的生命周期
(1)當客戶第一次請求servlet時,servlet被加載到內存 容器會創建servlet實例,并調用其init()方法進行初始化工作。
(2)容器創建請求對象,然后調用servlet的service()方法為客戶提供服務。
(3)當servlet不再被需求時,容器調用servlet的destory()方法將servlet實例銷毀。
12.Servlet開發
引入import.javax.servlet.* 和import.javax,servlet.http.*包
13.Servlet過濾器
Servlet過濾器是一種java組件,它位于客戶端和處理程序之間
Servlet過濾器工作原理
14.Model1和model2
Model1:JSP+JavaBean
Model2:JSP+Servlet+JavaBean
Model1中,jsp頁面實現頁面顯示、業務邏輯和流程控制,數據處理由JavaBean完成。
優點:進行快速和小規模的應用開發時優勢非常明顯。
缺點:不利于web應用的擴展和更新;調試和排錯困難。
Model2中,MVC模式--->模型-視圖-控制器.即把web應用的輸入輸出和處理流程按照Model.View和Controller分成三層。
Model1和Model2的區別:
Model1和Model2實際上就是對采用JSP技術開發的web應用的不同模型的描述。Model1采用JSP+JavaBean技術開發web應用,它比較適合小規模應用的開發,效率較高,易于實現,但由于在JSP頁面中內嵌了大量的Java代碼,以至于當業務邏輯復雜時,代碼可維護性、可擴展性和可重用性就會下降;Model2采用JSP+Servlet+JavaBean技術開發web應用,該模型基于MVC模式,完全實現了頁面顯示和邏輯的分離,它充分利用了JSP和Servlet兩種技術的優點,JSP更適合前臺頁面的開發,而Servlet更擅長服務器端程序的編寫,Model2分工明確,更適合大型項目的開發和管理。
視圖(view)用于與用戶交互,可以用HTML.JSP實現。
15.模型(model)用于表示業務數據和實現業務邏輯,可以用JavaBean實現 控制器(controller)完成流程控制,它接收來自視圖層用戶輸入的數據,并調用相應的模型進行處理,最后選擇合適的視圖去響應用戶。控制層可以用Servlet實現。
優點:MVC模式完全實現了頁面表示和業務邏輯的分離;
MVC優勢之一在于三層各司其職,互不干涉。
缺點:沒有明確的定義。
模型層為JavaBean,實現了數據的表示和業務邏輯,視圖層為JSP頁面,只負責顯示功能。
控制器為Servlet,負責接收用戶的請求,設置JavaBean屬性,調用JavaBean完成業務處理,最后將處理結果交給JSP頁面顯示。
16.自定義標簽
對隱式對象的操作、處理表單、訪問數據庫及其他企業級服務。
自定義標簽種類:
1.不帶有屬性和標簽體:
2.帶有屬性沒有標簽體的標簽:
3.帶有屬性帶有標簽體:myBody
17.EL表達式
基本語法${expr}
功能:對屬性對象的簡明訪問:${user}
對屬性對象的屬性訪問:${customer.firstname}
對屬性集合元素的訪問:對數組和list:${variable[index]} 對map:${variable[key]}
對請求參數cookie等的簡單訪問.
請求參數${param.custID}
Cookie對象:${cookie.userCookie}
18."."操作符和"[ ]"操作符
${user.address}=${user[address]}
訪問數組和集合元素,需使用[ ]
javaweb總結范文4
優點:
1.開發順序基本正確。業務->建表->主界面->其它界面->javabean->dao類->完成功能->整合。
2.嚴格按照三層架構模式開發。JSP<->Servlet<->Server->dao->javabean。
3.為了方便管理.每個頁面的servlet都單獨有一個包。
4.關于javabean設計比上次javaweb項目做了修正。拿學生<->班級舉例.學生表的班級表通過班級id外鍵關聯.學生的bean對象應該有班級對象,而不是班級的id。這樣有了一個學生就有了學生所在這個班級所有信息,符合邏輯。
<%@ taglib="" prefix="s" uri="/struts-tags">
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<meta http-equiv="pragma" content="no-cache"/>
<meta http-equiv="cache-control" content="no-cache"/>
<meta http-equiv="expires" content="0"/>
。糾eta http-equiv="keywords" content="keyword1,keyword2,keyword3"/>
。糾eta http-equiv="description" content="This is my page"/>
<title>分頁</title>
。糾eta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
。約cript type="text/javascript">
var tableData = [{"C0":"臨夏州_康樂縣","C1":190893.39,"C2":24544.65,"AREA_ID":"930013005"},{"C0":"臨夏州_永靖縣","C1":368900.35,"C2":40592.19,"AREA_ID":"930013006"},{"C0":"蘭州市_東崗分局","C1":88.48,"C2":126.4,"AREA_ID":"930013106"},{"C0":"臨夏州_臨夏縣","C1":107337.9,"C2":20612.1,"AREA_ID":"930013008"},{"C0":"臨夏州_廣河縣","C1":69738.07,"C2":34894.44,"AREA_ID":"930013003"},{"C0":"臨夏州_和政縣","C1":46622.96,"C2":20954.97,"AREA_ID":"930013002"},{"C0":"臨夏州_東鄉縣","C1":96021.84,"C2":16725.63,"AREA_ID":"930013004"},{"C0":"臨夏州_臨夏市中心","C1":1845311.12,"C2":129478.93,"AREA_ID":"930013001"},{"C0":"天水市_秦州區","C1":0,"C2":0,"AREA_ID":"930013801"},{"C0":"臨夏州_積石山","C1":256181.79,"C2":15185.98,"AREA_ID":"930013007"},{"C0":"酒泉_肅州區","C1":264312,"C2":402.6,"AREA_ID":"930013701"}];
var columns = [{"cid":"C0","ctext":"區縣"},{"cid":"C1","ctext":"客戶總收入"},{"cid":"C2","ctext":"當月出賬費用"}];
/**
page:頁碼
pageSize:每頁的記錄條數
此方法除了傳入page和pageSize之外,還應知道的有三個參數:
一、表的`全部數據,json串格式,可通過action查詢數據庫得到。
二、表頭所對應的列的key及名稱,也是json串格式
三、表所對應的id
注:此處只是適合表頭只有一行,且事先寫好的情況。您可以根據需要改一下,邏輯思路就是這樣,歡迎批評指正。
*/
function splitPage(page,pageSize){
var ptable = document.getElementById("page_table");
var num = ptable.rows.length;//table.rows返回表格中包含的所有行,此處假設表由表頭1行和表體N行組成
//alert(num);
//清除tbody
for(var i=num-1;i>0;i--){
ptable.Row(i);
}
var totalNums = tableData.length;//總行數
var totalPage = Math.ceil(totalNums/pageSize);//總頁數
var begin = (page-1)*pageSize;//頁起始位置(包括)
var end = page*pageSize;//頁結束位置(不包括)
end = end>totalNums?totalNums:end;
//向tbody中寫入數據
var n = 1;//tbody的起始行
for(var i=begin;i<end;i++){
var row = ptable.Row(n++);
var rowData = tableData[i];
for(var j=0;j<columns.length;j++){
var col = columns[j].cid;
var cell = row.Cell(j);
var cellData = rowData[col];
cell.innerHTML = cellData;
}
}
//生成分頁工具條
var pageBar = "第"+page+"頁/共"+totalPage+"頁"+" ";
if(page>1){
pageBar += "首頁 ";
}else{
pageBar += "首頁 ";
}
if(page>1){
pageBar += "
。/script>
javaweb總結范文6
經過這最近一段時間的項目開發與考核,今天終于畫上圓滿的句號,我長呼了一口氣,同時在內心深處,也默默地為接下來的學習,做一個前段時間的項目總結,也是學習的總結,吸取之前的經驗教訓,前事不忘后事之師,錯誤并不可怕,可怕的是再在同一個地方犯同樣錯誤,所以對于我來說,更多的去自我認知,知我批評要比表揚和贊許來的更加深刻,非常有必要做一個總結。
雖然所做的項目并沒做到考核老師所希望看到的效果,和得到正面的點評,也與自己所想象的結果大相徑庭,當然可能在項目最開始的時候,我也曾做過這樣最壞的打算,但是當現實漸漸逼近的時候,我卻一時難以接受這樣的結果,是我意料之外,但也是情理之中,俗話說:種瓜得瓜,種豆得豆。
在項目開發其中,我有過給自己找借口,有過灰心的時候,也有過急躁,如坐針氈的時候,但是想要作為一個合格優秀的程序員,你不僅不能這樣的情緒,而且在真實的開發環境當中,會有遇到比這更艱難的情況,更不好開發環境,所以要完成一個項目的開發,我得要利用好為數不多的學習時間,更加勇敢的直面這些缺點,并且改正它,不要認為自己以前沒學過JAVA,沒有這方面的經驗而去給自己找借口,越過心理上的這一到鴻溝。
考核的胡老師說過:不要總是把自己當成一個學生去看待,這樣容易松懈,應該是把自己當做一個職業人去看待,做好當下的每一個效果,上好當下的每一節課,讓自己時時刻刻緊張起來。這樣類似的話,在我之前的公司,也有主管這樣說過,雖然我已大學畢業了,沒有完全把自己當一個學生去看待,但自己又何嘗不是有過這樣的念頭,特別是別人都是這樣想的時候,學習的態度不夠堅定,立場不堅決,這也是導致我沒有學好的主要原因之一吧。
工善欲器事,必先利其器。除了保持好的心理和端莊學習的態度外,更要總結更好的學習方法,不要讓自己陷入到疲憊學習的.死胡同了,積累好的學習經驗,去掌握好的學習方法,好的學習方法不僅是自己當下一筆無形的財富,也是在不久的將來,在工作當中競爭的一把利器。
吾日三省吾身,只有在自己的總結中給予自己更多的認知,反思,而少一些褒獎,這樣自己會對平時忽視的一些地方,能有更加深刻的理解和認識,實踐是檢驗真理的唯一標準,雖然實踐中我們所遇到的挫折與失敗會有無數次,而成功只有一次,但是只要成功了,我的付出就是值得的,就像前面有無數個-1,但你只要最總做到了一個+1,你的結果就是+1的,在別人的眼里你就是成功的,在客戶的眼里,你項目是物美價廉的。
回想在這一個多月的學習時間里,我學到了許許多多讓我感覺比較充實的知識,掌握了更多的學習的方法,但這都是與大家息息相關的,離不開老師的教導和同學的幫助,也在此非常感謝大家熱心幫助。
【javaweb總結】相關文章:
對老板總結感想總結二篇03-20
學科總結03-20
電場公式總結06-08
離?偨Y精選范文03-19
工會總結范本03-19
總結電熱的作用12-09
FLASH教程總結01-20
香茅做法總結03-19
工會總結精選范文03-20
if句型的用法總結10-24