A. jsp頁面嵌入java代碼怎麼寫(jsp頁面中java代碼無效)
如何在jsp裡面寫java代碼%!%是在service方法的外面定義變數和寫入語句的,也就是在servlet中定義變數,而我們知道servlet在被container載入後只生成一個對象而已,然後所有的請求都在service方法裡面被處理。所以如果你在servlet中定義了變數,那麼所有的請求可以共用這一個變數了。
最簡單的應用就是,你要計算有多少人訪問了這一個JSP頁面,那麼就可以把變數i定義在servlet中,然後在JSP文件裡面加一句i++;,這樣就可以統計有多少人訪問了你這個頁面了。
至於%%這個嘛,就是在service方法里啦。
怎麼在JSP中引入JAVA代碼
JSP中,嵌入的JAVA代碼,可以直接引用JAVA的類
%
out.println(newjava.util.Date());
%
~
jsp頁面中javascript嵌套java代碼段關鍵是%p.delpinfo(sfzh);%這里。
這句在頁面載入成功就已經執行了,不受js代碼段控制的。(java代碼優先執行,並且輸出動態內容,生成靜態頁面後,js才開始執行)
如果要讓js控制操作邏輯,去判斷是否發送新的請求,可以用ajax、或用js去操作一個form提交,或者用js去操作一個iframe去進行指定url跳轉。
總的來說就是用js去發送http請求。
1、寫一個新的action或xxx.jsp,專門執行p.delpinfo(sfzh);
2、用ajax,或form,或隱藏的iframe去請求這個xxx.jsp
jstl標簽中怎麼嵌入Java代碼要怎麼嵌入java代碼呢?
jsp頁面中嵌入java代碼叫做小腳本,如:
%
String
str
=
"java";
out.print(str);
%
但是jstl本來就是用來取代小腳本的,因此沒有必要再jstl中嵌入java代碼
如果要在jstl中使用java代碼的值的話,可以通過表達式%=str
%或者jstl的core標簽,如:c:set
var="set"
value="%=str
%"
/等等
具體用法有些不太記得了,好長時間沒有用過jstl了。
在jsp頁面如何輸出java代碼怎麼寫jsp的組成:jsp=html+java腳本+jsp標簽(指令)
jsp中無需創建即可使用的對象一共有9個,被稱之為9大內置對象。例如:request對象、out對象
3種java腳本:
%...%:java代碼片段
%=...%:java表達式
%!...%:聲明,用來創建類的成員變數和成員方法
jsp其實是一種特殊的Servlet,在html中通過java腳本就可以嵌入java代碼,輸出一些內容。
jsp頁面怎麼使用java方法在jsp中使用java類舉例如下:
1.新建一個項目,在src文件夾下添加一個包:如:tianaoweb.com;
2.再在包中添加一個類:如
packagecom;
publicclasstest{
publicStringsd(){
return"sd";
}
}
3.在默認的首頁index.jsp(當然也可以自己新建一個jsp文件)的開頭引入
%@pageimport="tianaoweb.com.*"%
4.在body/body中添加相應的java代碼片:
如:
%
Stringstr;
testte=newtest();
%
%=te.sd()%
B. 怎麼使用JAVA連接資料庫
1、首先我們先建好資料庫,然後建立好程序的目錄,因為是適用於初內學者的,容所以就建立一個簡單的java project,如圖。
C. java學習中的重點有哪些
Java學習中的重點為:
第一階段:
1. JAVA語法和基礎,包括循環。。和類的相關內容,如實現,繼承什麼的
2. 你需要掌握幾個重點的集合,List介面的兩個子類LinkedList,ArrayList;然後是Map幾口的兩個子類HashMap,HashTable;Set介面 掌握List後學Set就容易了;掌握Collection和Collections的區別
3. 掌握IO一章,重點的幾個流 InputStream,OuputStream;BufferedReader,BufferedWrite;
ObjectInputStream, ObjectOutputStream,,PrintWriter,FileReader,FileWriter了解JAVA的序列化,掌握JAVA的File類
4.JDBC非常重要,重點掌握Connection,PreparedStatement, Statement,ResultSet,
其他的可以在學習或項目中如果碰到再學,但早期重點掌握前面幾個,其他了解足夠,
資料庫建議新手用MySql,下載Navicat for MySQL管理工具
5.如果你想快速上手的話,那麼你需要跳過這些,
包括:線程,網路編程,GUI編程
第二階段:
1. HTML+JAVASCRIPT不必說了,掌握多少看自己把握了,CSS做了解
2. JSP+Servlet,你需要重點掌握幾個,Request,Response,Session,其次是Application.
另外你需要知道Redirect,ForWard的區別,Servlet的生命周期等
3. 標簽方面:(1)掌握EL表達式;(2)最好掌握JSTL標簽,不會也可,但如果掌握了JSP標簽,學JSTL也十分簡單,重點是迭代標簽和格式化標簽,
4. 學習AJAX,簡單點就行了,無需深入研究。
5. 掌握了上面的,你可以繼續學習框架:Struts2.0;Hibernate3;Spring 2.0。
6. 如果上面你都做到的話,並且在期間做了2到3個項目的話,就可以參加工作了。
Java學習中的重點為:
第一階段:
1. JAVA語法和基礎,包括循環。。和類的相關內容,如實現,繼承什麼的
2. 你需要掌握幾個重點的集合,List介面的兩個子類LinkedList,ArrayList;然後是Map幾口的兩個子類HashMap,HashTable;Set介面 掌握List後學Set就容易了;掌握Collection和Collections的區別
3. 掌握IO一章,重點的幾個流 InputStream,OuputStream;BufferedReader,BufferedWrite;
ObjectInputStream, ObjectOutputStream,,PrintWriter,FileReader,FileWriter了解JAVA的序列化,掌握JAVA的File類
4.JDBC非常重要,重點掌握Connection,PreparedStatement, Statement,ResultSet,
其他的可以在學習或項目中如果碰到再學,但早期重點掌握前面幾個,其他了解足夠,
資料庫建議新手用MySql,下載Navicat for MySQL管理工具
5.如果你想快速上手的話,那麼你需要跳過這些,
包括:線程,網路編程,GUI編程
第二階段:
1. HTML+JAVASCRIPT不必說了,掌握多少看自己把握了,CSS做了解
2. JSP+Servlet,你需要重點掌握幾個,Request,Response,Session,其次是Application.
另外你需要知道Redirect,ForWard的區別,Servlet的生命周期等
3. 標簽方面:(1)掌握EL表達式;(2)最好掌握JSTL標簽,不會也可,但如果掌握了JSP標簽,學JSTL也十分簡單,重點是迭代標簽和格式化標簽,
4. 學習AJAX,簡單點就行了,無需深入研究。
5. 掌握了上面的,你可以繼續學習框架:Struts2.0;Hibernate3;Spring 2.0。
6. 如果上面你都做到的話,並且在期間做了2到3個項目的話,就可以參加工作了。
D. 如何將jsp頁面轉換成靜態頁面
將jsp頁面轉換成靜態頁面的步驟:
1、在jsp頁面中加入servlet.代碼如下:
public class ToHtml extends HttpServlet {
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String url = "";
String name = "";
ServletContext sc = getServletContext();
String file_name = request.getParameter("file_name");// 你要訪問的jsp文件名,如index,不包括擴展名
// 則你訪問這個servlet時加參數.如http://localhost/test/toHtml?file_name=index
url = "/" + file_name + ".jsf";// 你要生成的頁面的文件名。我的擴展名為jsf .
name = ConfConstants.CONTEXT_PATH+"\"+ file_name + ".htm";// 這是生成的html文件名,如index.htm.文件名字與源文件名相同。擴展名為htm
//ConfConstants.CONTEXT_PATH為你的應用的上下文路徑。
RequestDispatcher rd = sc.getRequestDispatcher(url);
final ByteArrayOutputStream ōs = new ByteArrayOutputStream();
final ServletOutputStream stream = new ServletOutputStream() {
public void write(byte[] data, int offset, int length) {
os.write(data, offset, length);
}
public void write(int b) throws IOException {
os.write(b);
}
};
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
HttpServletResponse rep = new HttpServletResponseWrapper(response) {
public ServletOutputStream getOutputStream() {
return stream;
}
public PrintWriter getWriter() {
return pw;
}
};
rd.include(request, rep);
pw.flush();
FileOutputStream fos = new FileOutputStream(name); // 把jsp輸出的內容寫到xxx.htm
os.writeTo(fos);
fos.close();
PrintWriter ōut = response.getWriter();
out
.print("<p align=center><font size=3 color=red>頁面已經成功生成!single<br>http://www.agilejava.org/space/? 233</font></p>");
}
}
2、配置web.xml
<servlet>
<servlet-name>toHtml</servlet-name>
<servlet-class>mj.util.html.ToHtml</servlet-class>//你的servlet的類。
</servlet>
<servlet-mapping>
<servlet-name>toHtml</servlet-name>
<url-pattern>/toHtml</url-pattern>
</servlet-mapping>
3、運行servlet。如:http://localhost:8080/test/toHtml?file_name=index
在test項目的根目錄下,生成了一個index.htm的靜態文件。
E. 學習java需要什麼基礎
在編程的世界裡,Java一直是企業級別開發最喜歡選擇的編程語言,從java目前的就業形勢來看還是相當不錯的,由於手機安卓開發的需要,許多人也開始轉戰Java的學習,極客營覺得雖然java開發人員的需求量變得越來越大,但這並不代表做java開發人員的技術就可以一成不變,java技術更新的很快,而且在現在中國的培訓機構里java學員都是批量生產的,那麼競爭壓力也是很大的。對於新開始學的學生來說,主要主要掌握什麼基礎比較好。
一、掌握靜態方法和屬性
靜態方法和屬性用於描述某一類對象群體的特徵,而不是單個對象的特徵。Java中大量應用了靜態方法和屬性,這是一個通常的技巧。但是這種技巧在很多語言中不被頻繁地使用。理解靜態方法和屬性對於理解類與對象的關系是十分有幫助的,在大量的Java規范中,靜態方法和屬性被頻繁使用。因此學習者應該理解靜態方法和屬性。Java在方法和屬性的調用上是一致的,區別只表現在聲明的時候,這和c++是不同的。
二、重視介面
在面向對象早期的應用中大量使用了類繼承。隨著軟體工程理論的不斷發展,人們開始意識到了繼承的眾多缺點,開始努力用聚合代替繼承。軟體工程解決擴展性的重要原則就是抽象描述,直接使用的工具就是介面。介面近年來逐漸成為Java編程方法的核心。另一方面,就應用而言,大部分開發是建立在規范基礎之上的,不需要自己建立復雜的繼承關系和龐大的類。因此讀懂規范和用好規范已經成為應用程序開發人員的首要任務,Java各項規范的主要描述手段就是介面。
三、學好集合框架
Java描述復雜數據結構的主要方式是集合框架。Java沒有指針,而是通過強大的集合框架描述數組、對象數組等復雜的數據結構。學好這些數據結構的描述方法對於應用程序編寫,特別是涉及到伺服器方、3層結構編程至關重要。程序員在這個時候不能再用諸如資料庫結果集之類的結構描述數據了。
由於很多語言沒有這么強大的集合框架體系,很多初學者不知所措,更不知道拿來做什麼用,因此應該引起足夠的重視。
四、例外捕捉
Java對例外捕捉的強調是空前的,它強迫程序員用顯著的與邏輯方法完全不同的方式描述例外捕捉,對於程序描述的完整性和嚴謹性有很大的意義。c++也有類似的機制,但是我們看到很多c++程序員並不習慣使用這些機制。
Java的初學者應該充分學習好這種例外捕捉機制,養成良好的編程習慣。
F. jstl 跟freemarker 有什麼區別
jstl 跟freemarker 的區別如下:
一、jstl
JSTL(JSP Standard Tag Library,JSP標准標簽庫)是一個不斷完善的開放源代碼的JSP標簽庫,是由apache的jakarta小組來維護的。
1、使用條件
jstl帶來的優雅編程體驗人所皆知,在java社區蒸蒸日上的今天使用jstl已無需考慮很多問題,我們可以用myeclipse等java集成開發環境輕松搭建一個jstl的web項目。即便有了myeclipse這么得力的工具幫我們快速開發web項目,但是有一些知識我們必須了解的 ---- 那就是jstl與servlet版本,以及jsp版本之間的依賴關系。
2、優點
在應用程序伺服器之間提供了一致的介面,最大程度地提高了WEB應用在各應用伺服器之間的移植。
簡化了JSP和WEB應用程序的開發。
二、freemarker
FreeMarker是一個用Java語言編寫的模板引擎,它基於模板來生成文本輸出。FreeMarker與Web容器無關,即在Web運行時,它並不知道Servlet或HTTP。它不僅可以用作表現層的實現技術,而且還可以用於生成XML,JSP或Java 等。
1、特性
——通用
能夠生成各種文本:HTML、XML、RTF、Java源代碼等等。
易於嵌入到產品中:輕量級;不需要Servlet環境。
插件式模板載入器:可以從任何源載入模板,如本地文件、資料庫等等。
可以按所需生成文本:保存到本地文件;作為Email發送;從Web應用程序發送它返回給Web瀏覽器。
——強大的模板語言
所有常用的指令:include、if/elseif/else、循環結構。
在模板中創建和改變變數。
幾乎在任何地方都可以使用復雜表達式來指定值。
命名的宏,可以具有位置參數和嵌套內容。
名字空間有助於建立和維護可重用的宏庫,或者將一個大工程分成模塊,而不必擔心名字沖突。
輸出轉換塊:在嵌套模板片段生成輸出時,轉換HTML轉義、壓縮、語法高亮等等;可以定義自己的轉換。
——通用數據模型
FreeMarker不是直接反射到Java對象,Java對象通過插件式對象封裝,以變數方式在模板中顯示。
可以使用抽象(介面)方式表示對象(JavaBean、XML文檔、SQL查詢結果集等等),告訴模板開發者使用。方法,使其不受技術細節的打擾。
為Web准備
在模板語言中內建處理典型Web相關任務(如HTML轉義)的結構。
能夠集成到Model2 Web應用框架中作為JSP的替代。
支持JSP標記庫。
為MVC模式設計:分離可視化設計和應用程序邏輯;分離頁面設計員和程序員。
2、簡介
FreeMarker允許Java servlet保持圖形設計同應用程序邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的數據動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速度。雖然FreeMarker具有一些編程的能力,但通常由Java程序准備要顯示的數據,由FreeMarker生成頁面,通過模板顯示准備的數據。