程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> DRP之JSP HelloWorld

DRP之JSP HelloWorld

編輯:關於JSP

由於修改Servlet之後,需要重新生成class文件,並且重啟服務器,然後打開或刷新網頁,才能看到修改的效果,過程非常繁瑣,不便捷.如何做到所見即所得,我一修改,一刷新網頁,效果立馬出現.所以JSP產生了.

JSP,java serverpages.特點,擁有和Servlet一樣的特性和優點,因為JSP實際就是Servlet.而Servlet比更有優勢的是,可以在HTML代碼中直接內嵌Java代碼.他的操作過程就是,由JSP Engine先將JSP程序轉換成Servlet代碼,然後再就是Servlet的操作了,編譯成class類,載入執行.並且,只有當客戶端第一次請求JSP時,才需要將其轉換、編譯.

寫個最簡單的HelloWorld.jsp,見識一下什麼是JSP.文件名為HelloWorld.jsp,內容:

	
		
			HelloWorld
		
	
		
			<%
				out.println("HelloWorld");
			%>
		
	

啟動服務器,輸入地址,界面運行效果:

\

是不是超簡單,可是內部是如何運作的?

首先,找到tomcat中的conf文件夾下的web.xml,其中有兩段Servlet的配置標簽,查找和Servlet是一樣的.

 	    
	        jsp
	        *.jsp
	        *.jspx
	    
 	        jsp
	        org.apache.jasper.servlet.JspServlet
	        
	            fork
	            false
	        
	        
	            xpoweredBy
	            false
	        
	        3

    

在第一段的servlet-mapping中,可以知道,只要是*.jsp和*.jspx的都可以找到servlet-name為jsp,而servelt-name為jsp的,找到的類是org.apache.jasper.servlet.JspServlet.這個類在哪呢?

在lib下可以找到jasper.jar包,然後打開可以找到這個class,但是吧,打開亂碼.看來不是這裡.

\

這個文件夾下有個xml文件,有一段內容是這樣的.

 

不大知道這段代碼,但是類型是我要的類,domain,范圍或者域名是Catalina.而在work文件夾下是有一個Catalina的文件夾的.

所以在tomcat根目錄下,找到work文件夾,這個文件夾的作用是用來放置由JSP生成的各種Servlet文件.在這個路徑下一直進去,就可以找到HelloWorld_jsp的.java和.class文件..java文件中就是Servlet代碼.

\

<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+ICAgICAgICAgILTyv6ouamF2Yc7EvP4sLmNsYXNztPK/qsrHwtLC6y7U2l9qc3BTZXJ2aWNluMO3vbeo1tAs1dK1vdK7ts60+sLrLL7Nyse9q87Sw8e1xC5qc3DOxLz+1tC1xLT6wuvIq7K/vfjQ0MHLtKbA7SzIu7rzyuSz9s/Uyr4uPC9wPgo8cD48aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20140310/20140310091835233.jpg" alt="\">

只要我立馬修改了JSP中的代碼,不用重啟Tomcat服務器,刷新網頁,這裡就會自動生成相應的.java代碼,並編譯,所以效果就出來了.

如修改了HelloWorld的顯示代碼,為out.println("HelloWorldThis is JSP"),然後刷新網頁,

\

打開的文本編輯器就提示HelloWorld_jsp.java被修改了,內容變成了這樣.

\

.java和.class文件的修改日期變為當前日期和時間,也能表明他們被修改過了.

IOSvwMDG97XE1MvQ0NCnufvSsrj618W4xLHkLjwvcD4KPGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140310/20140310091835237.jpg" alt="">

由此可以大概了解一下JSP的運行操作,以及它和Servlet就是一樣的東西的事實.用Servlet就可以接收客戶端的請求,處理,返回結果,只是不用工具時操作麻煩,而JSP完美的解決了這個問題.看來,任何東西都是越變越方便的,事物都是發展著的.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved