Java學習(三)JSP學習——未完,java學習jsp
一、 理解JSP技術
JSP全名為Java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,它 是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言 (SGML)的子集)檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案,尾碼名為(*.jsp)。 用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他動作系統上運行。
二、區分JSP與html技術
HTML頁面是靜態頁面,也就是事先由使用者寫好放在伺服器上,由web伺服器向用戶端發送.
JSP頁面是動態網頁,有JSP容器執行該頁面的Java代碼部分然後即時產生的頁面.
三、在eclipse的Web項目中建立一個JSP檔案
四、與html語句對比
五、 匯出Web項目
注意:匯出Web檔案時,要先斷開服務串連
匯出一個war包
六、將War部署到Tomcat服務
將打包好的War檔案部署到Tomcat服務中
接著運行Tomcat,會看到War包已經解壓成為檔案夾
接著就可以運行Tomcat使本地網頁顯示webapps中的JSP檔案的效果
七、JSP列印艾賓浩斯記憶曲線 1、瞭解艾賓浩斯記憶曲線
在新一天的學習中,學習了有關遺忘曲線複習記憶的方法,讓我們先瞭解下艾賓浩斯記憶曲線。
德國心理學家艾賓浩斯(H.Ebbinghaus)研究發現,遺忘在學習之後立即開始,而且遺忘的進程並不是均勻的。最初遺忘速度很快,以後逐漸緩慢。他認為"保持和遺忘是時間的函數",並根據他的實驗結果繪成描述遺忘進程的曲線,即著名的艾賓浩斯記憶遺忘曲線。
2、在昨天的Web項目的基礎上,建立一個JSP檔案
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <%@ page import="java.util.*" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>Insert title here</title> 9 </head> 10 <body> 11 <table border=2> 12 <tr> 13 <td>日期</td> 14 <td>新學期</td> 15 <td>複習前1課</td> 16 <td>複習前2課</td> 17 <td>複習前5課</td> 18 <td>複習前7課</td> 19 <td>複習前15課</td> 20 </tr> 21 <% 22 //通過日曆類建立對象 23 Calendar cd = new GregorianCalendar();//向上轉型 24 int y =Calendar.YEAR; 25 int Y = cd.get(y);//獲得年份 26 int m=Calendar.MONTH; 27 int M = cd.get(m);//獲月年份 28 int days = 0;//初始化天數 29 String day = "";//初始化輸出日期 30 //定義迴圈參數 31 int n = 1; 32 int p = 1; 33 int l = 1; 34 35 int startday = 8;//初始化開始日期 36 int startmonth = 5;//初始化開始月份 37 String month1=(startmonth+1)+"";//月份的遞加 38 String month2=(startmonth+2)+"";//月份的遞加 39 String month3=(startmonth+3)+"";//月份的遞加 40 String start = startmonth+"";//定義月份參數 41 42 //對月份進行劃分 43 List<String> myList1=new ArrayList<String>(); 44 List<String> myList2=new ArrayList<String>(); 45 myList1.add("1"); 46 myList1.add("3"); 47 myList1.add("5"); 48 myList1.add("7"); 49 myList1.add("8"); 50 myList1.add("10"); 51 myList1.add("12"); 52 53 myList2.add("4"); 54 myList2.add("6"); 55 myList2.add("9"); 56 myList2.add("11"); 57 58 59 60 61 int group = 72;//代表有多少篇課文要背誦 62 int work = 72+15; 63 for(int i=0;i<work;i++){ 64 65 //通過比較的出當月最大天數 66 boolean b1=myList1.contains(start); 67 boolean b2=myList2.contains(start); 68 if(b1){ 69 days = 31; 70 }else { 71 if(b2){ 72 days = 30; 73 }else{ 74 if(Y % 4 == 0 && Y % 100 != 0 || Y % 400 == 0){ 75 days = 28; 76 }else { 77 days = 29; 78 } 79 } 80 } 81 //以時間的形式輸出days 82 if((startday+i)<=days){ 83 day = (1+M)+"月"+(i+startday); 84 }else if(n<=days){ 85 start = month1; 86 day =(2+M)+"月"+n; 87 n++; 88 }else if(p<=days){ 89 start = month2; 90 day =(3+M)+"月"+p; 91 n++; 92 p++; 93 }else{ 94 start = month3; 95 day =(4+M)+"月"+l; 96 l++; 97 } 98 String task1 = "";//當天需要工作的第一個任務 99 String task2 = "";100 String task3 = "";101 String task4 = "";102 String task5 = "";103 String task6 = "";104 //先求算任務1105 if(i<=group-1){106 task1 = (i+1)+"";107 }else{108 task1 = "—";109 }110 //先求算任務2111 if(i<=0||i>=(group+1)){112 task2 = "—";113 }else{114 task2 = i+"";115 }116 //先求算任務3117 if(i<=0+1||i>=(group+2)){118 task3 = "—";119 }else{120 task3 = (i-1)+"";121 }122 //先求算任務4123 if(i<=0+3||i>=(group+4)){124 task4 = "—";125 }else{126 task4 = (i-3)+"";127 }128 //先求算任務5129 if(i<=0+6||i>=(group+7)){130 task5 = "—";131 }else{132 task5 = (i-6)+"";133 }134 //先求算任務5135 if(i<=0+14||i>=(group+15)){136 task6 = "—";137 }else{138 task6 = (i-14)+"";139 }140 141 %>142 <tr>143 <td><%=day %></td>144 <td><%=task1%></td>145 <td><%=task2%></td>146 <td><%=task3%></td>147 <td><%=task4%></td>148 <td><%=task5%></td>149 <td><%=task6%></td>150 </tr>151 <%152 }153 %>154 </table>155 156 </body>157 </html>
對這串代碼不是很滿意,感覺不夠流暢,但又不知道的怎樣能夠最佳化。。。,希望能有大神來指點下,謝謝!
3、運行結果