標籤:設計 ati 樣本 his 編程 平台 名稱 程式設計語言 xxxxxx
一、JSP的由來
在很多動態網頁中,絕大多部分內容是不變的,只有局部內容需要動態產生和改變。例如, 一個新聞的瀏覽次數,只有這個次數是動態改變的,而Servlet程式返回用戶端的代碼全是java程式動態建立的。Servlet 的缺點,處理介面困難。JSP 是在Servlet的基礎上發展起來的,它彌補了Servlet在介面處理方面的缺陷。
簡單來講,JSP =html+java片段+jsp標籤+javascript,它功能強大,可以和javabean 結合
另外,JSP+javabeen+servlet 就構成了mvc模式。
JSP是運行在服務端的,也就是說,我們在案頭上建立一個.JSP檔案,它也不能能夠被執行哦。
我們將它黏貼到Tomcat上的webapps檔案中(或者你直接在裡面建立.jsp檔案也可以)。
下一步,我們要啟動tomcat。接著在瀏覽器中訪問:http://localhost:8080/myweb/Demo.jsp。
接下來神奇的事情發生了。在Tomcat的webapps中可以看到,幫我們自動產生兩個檔案。
二、JSP的簡介摘錄自百度:JSP全名為Java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,它是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標準通用標記語言 (SGML)的子集)檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案,尾碼名為(*.jsp)。用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他動作系統上運行。它實現了Html文法中的java擴充(以 <%, %>形式)。JSP與Servlet一樣,是在伺服器端執行的。通常返回給用戶端的就是一個HTML文本,因此用戶端只要有瀏覽器就能瀏覽。JSP技術使用Java程式設計語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。網頁還能通過tags和scriptlets訪問存在於服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支援可重用的基於組件的設計,使基於Web的應用程式的開發變得迅速和容易。 JSP(JavaServer Pages)是一種動態網頁面技術,它的主要目的是將表示邏輯從Servlet中分離出來。Java Servlet是JSP的技術基礎,而且大型的Web應用程式的開發需要Java Servlet和JSP配合才能完成。JSP具備了Java技術的簡單易用,完全的物件導向,具有平台無關性且安全可靠,主要面向網際網路的所有特點。
三、最簡單的JSP程式
<% String userName="zhangsan";%> <script> alert( <% userName %> ); </script>
注意:訪問JSP的過程
如果是第一次訪問伺服器,則翻譯成一個對應的java檔案(Servlet)。然後,再被編成 .class 檔案並載入到記憶體中。
如果是以後訪問,則直接調用記憶體中的jsp執行個體,所以第一次訪問慢,以後訪問會更加快。
四、3種JSP注釋
1.
<% //this is /* this is */%>
2.
<%-- //這樣的注釋內容不會被發送到用戶端 這是被注起來的內容 <h1>這是注起來的</h1>--%>
3.
<!-- <% out.print("老闆讓我乾的活我就不幹"); %> --> //這裡的內容會發送到用戶端,但瀏覽器不會顯示
五、JSP指令碼元素(3種)
1.
1) 程式碼片段 <% %>它要嚴格遵守java語言規範,需要導包的要導包<% %> 和 <% %> 之間的java代碼是可以互相訪問的,相當於寫在一個 <% %>裡
2.
2) 聲明 <%!xxxxxxx%> //注意 <%! 中間千萬不能空格<%!public String test(){return "ok:";}%>
3.
3) 運算式 <%= xxx %> //注意 <%= 中間千萬不能空格,後面不能有分號<%=String str="嘻嘻嘻";%>例子:<label><%= str %></label> //和下面的寫法等價<label><% out.print(str); %></label>
附:myeclipse 產生的jsp頁面,解說:
(在實際應用中,不需要的我們可以刪除它)
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> //解說:page指令,import用來導包的,pageEncoding指當前頁面編碼方式<% String path = request.getContextPath(); //解說: contextPath 代表web應用的名稱 /shop-admin String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //上下對齊解說: //http //localhost //8080 // shop-admin //上面最後產生的結果:-> http://localhost:8080/shop-admin/ %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> //解說:言檔型別宣告 <html> <head> <base href="<%=basePath%>"> //解說:<base href="http://localhost:8080/shop-admin/" > <title>My JSP ‘test.jsp‘ starting page</title> <body> <meta http-equiv="pragma" content="no-cache"> //解說:不緩衝 <meta http-equiv="cache-control" content="no-cache"> //解說:不緩衝 <meta http-equiv="expires" content="0"> //解說:不緩衝 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> //解說:給網路機器人用來搜尋的關鍵字 <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </body> </html>
六、JSP版本的計算機(程式碼範例)
<% //接收參數 String num1 =request.getParameter("num1"); String num2 =request.getParameter("num2"); String flag =request.getParameter("flag"); int n_num1=0; int n_num2=0; int result=0; if(num1!=null&&num2!=null&&flag!=null){ //計算 n_num1=Integer.parseInt(num1); n_num2=Integer.parseInt(num2); if(flag.equals("+")){ result=n_num1+n_num2; }else if(flag.equals("-")){ result=n_num1-n_num2; }else if(flag.equals("*")){ result=n_num1*n_num2; }else if(flag.equals("/")){ result=n_num1/n_num2; } out.print("<h1>計算結果是 "+result+"</h1>"); } //輸出結果 %> <form action="calcUI.jsp" name="form1" method="get" > 請輸入第一個數: <input type="text" name="num1" value=‘<%=request.getParameter("num1")==null?"":request.getParameter("num1") %>‘/> <br/> <select name="flag" > <option value=‘+‘ <%="+".equals(flag)?"selected ":"" %>>+</option> <option value=‘-‘ <%="-".equals(flag)?"selected ":"" %>>-</option> <option value=‘*‘ <%="*".equals(flag)?"selected ":"" %> >*</option> <option value=‘/‘ <%="/".equals(flag)?"selected ":"" %>>/</option> </select> <br/> 請輸入第二個數: <input type="text" name="num2" value=‘<%=request.getParameter("num2")%>‘ /> <input type="submit" value="計算" /> </form>
七、MVC模式
M ->mode 模型層 -> javaBeen (比如 UserDao,UserInfo)
V ->view 視圖層 -> html , jsp
C ->controller 控制層 ->由Servlet擔當
Java基礎——JSP