Java基礎——JSP

來源:互聯網
上載者:User

標籤:設計   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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.