時(shí)間:2023-05-25 02:42:02 | 來源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-05-25 02:42:02 來源:網(wǎng)站運(yùn)營(yíng)
2018-5-7 JSP_Web_MVC開發(fā)(5)-JSP語(yǔ)法:<% //此處編寫的是JAVA程序 /*用戶看不見的注釋*/%><!--This is a visiable comment--><%-- 此類注釋為JSP所獨(dú)有--%>
此處一定要注意:日后編寫JSP時(shí)候"<%--注釋--%>"很常見。<%! class Person{ private String name; private int age; public Person(String name,int age){ this.name=name; this.age=age; } public String toString(){ return "name="+this.name+",age="+this.age; } }%><% out.println(new Person("Tom",20));%>
不過一般而言不會(huì)在JSP中定義類,此類操作只是一個(gè)介紹。<%! public int add(int x,int y){ return x+y; }%><% out.println(add(20,10));%>
提示:此時(shí)定義的方法,就相當(dāng)于在類中定義的普通方法。<%! public static final String MESSAGE="Hello World"; public int x=10;//全局變量%><% out.println(MESSAGE); out.println(x++);%>
此時(shí)的x就相當(dāng)于全局變量,只會(huì)定義一次。<% int x=10; out.println(x ++);%>
此時(shí)定義的是一個(gè)局部變量,局部變量每次調(diào)用的時(shí)候都會(huì)重復(fù)的聲明,所以JSP刷新顯示內(nèi)容是不會(huì)改變的,永遠(yuǎn)是10。<% out.println("<table border=/"1/">"); for(int x=1;x<9;x++){ out.println("<tr>"); for(int y=1;y<=x;y++){ out.println("<td>"+x+"*"+y+"="+x*y+"</td>"); } out.println("</tr>"); } out.println("</table>");%>
今后JSP開發(fā)中,使用最多的都是“<%%>”,所有的語(yǔ)句幾乎都在此處。<%! public static final String MESSAGE="Hello World";%><% int num=10;%><h1><%=MESSAGE%></h1><h1><%="World"%></h1><h1><%=num%></h1>
此時(shí)功能和out.println()類似。<table border="1"><% for(int x=1;x<9;x++){%> <tr><% for(int y=1;y<=x;y++){%> <td><%=x%> * <%=y%> = <%=x*y%> </td><% }%> </tr><% } %></table>
此時(shí)代碼實(shí)現(xiàn)了HTML代碼與JAVA程序的分離,唯一的缺點(diǎn)是增加了許多Scriptlet代碼塊。<%@page pageEncoding="GBK" language="java"%><h1>這是測(cè)試頁(yè)面</h1>
page指令之中還有l(wèi)anguage屬性,表示操作的語(yǔ)言?,F(xiàn)在有且只有Java。<%@page contentType="text/HTML;charset=GBK"%><h1>這是測(cè)試頁(yè)面</h1>
如果contentType寫錯(cuò)了,就會(huì)出現(xiàn)下載框(這種情況以前經(jīng)常會(huì)遇到)。<mime-mapping> <extension>doc</extension> <mime-type>application/msword</mime-type></mime-mapping>
以上word的處理形式是 “application/msword”。<%@page pageEncoding="GBK" contentType="application/msword"%>
此時(shí)頁(yè)面就會(huì)按照word風(fēng)格運(yùn)行,如果使用的是IE會(huì)自動(dòng)彈出下載提示,可以把結(jié)果以word形式下載保存。<mime-mapping> <extension>htm</extension> <mime-type>text/html</mime-type></mime-mapping><mime-mapping> <extension>html</extension> <mime-type>text/html</mime-type></mime-mapping>
可以發(fā)現(xiàn),web.xml文件中htm和html后綴處理的MIME是完全相同的。<%@page pageEncoding="GBK" %><%@page import="java.io.*,java.net.*"%><%@page import="java.util.*"%><%@page import="java.text.*"%><h1><%=new SimpleDateFormat("yyyy-MM-dd").format(new Date())%></h1>
既然頁(yè)面可以導(dǎo)入開發(fā)包,那么也一定可以導(dǎo)入sql包,進(jìn)行數(shù)據(jù)庫(kù)的連接操作。下面實(shí)現(xiàn)數(shù)據(jù)讀取。<%@page pageEncoding="GBK"%><%@page import="java.sql.*"%><%!//定義數(shù)據(jù)庫(kù)連接的常量信息 public static final String DBURL="jdbc:sqlserver://1.25.13.8:1433;DatabaseName=test"; public static final String DBDRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver"; public static final String DBUSER="test"; public static final String DBPASSWORD="test";%><% //定義所需要的對(duì)象 Connection conn; PreparedStatement pstmt; ResultSet rs;%><%//進(jìn)行數(shù)據(jù)庫(kù)連接操作 String sql=" select swname,swdescription,swtype from [QND_White] "; Class.forName(DBDRIVER); conn=DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD); pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery();%><center><table border="1" width="90%"> <tr> <td>名稱</td> <td>描述</td> <td>類型</td> </tr><%//讀取數(shù)據(jù) while(rs.next()){ String swname=rs.getString(1); String swdescription=rs.getString(2); String swtype=rs.getString(3);%> <tr> <td><%=swname%></td> <td><%=swdescription%></td> <td><%=swtype%></td> </tr><% }%></table></center><% //關(guān)閉數(shù)據(jù)庫(kù)連接 conn.close();%>
今后可以利用JSP程序直接與數(shù)據(jù)庫(kù)進(jìn)行交互。<%@include file="路徑"%>
為了方便,下面首先建立3個(gè)文件。<h1>content.htm</h1>
<h1>content.jsp</h1>
<h1>content.inc</h1>
例 實(shí)現(xiàn)導(dǎo)入操作<%@ page pageEncoding="GBK"%><%@include file="content.jsp"%><%@include file="content.htm"%><%@include file="content.inc"%>
執(zhí)行后發(fā)現(xiàn)所有內(nèi)容會(huì)合在一起顯示。<jsp:include page="路徑"> <jsp:param name="參數(shù)名稱" value="參數(shù)內(nèi)容"/> <jsp:param name="參數(shù)名稱" value="參數(shù)內(nèi)容"/> ......</jsp:include>
例 導(dǎo)入靜態(tài)文件--與<%@include%>相同<%@ page pageEncoding="GBK"%><jsp:include page="content.jsp"/><jsp:include page="content.htm"/><jsp:include page="content.inc"/>
此時(shí)的效果與之前靜態(tài)導(dǎo)入完全相同,沒有任何區(qū)別。但是使用<jsp:include>導(dǎo)入文件時(shí),如果導(dǎo)入的時(shí)動(dòng)態(tài)文件,那么可以傳遞參數(shù),所有的參數(shù)都使用request.getParameter()進(jìn)行接收。<%@ page pageEncoding="GBK"%><h1>傳遞參數(shù)<%=request.getParameter("username")%></h1><h1>傳遞參數(shù)<%=request.getParameter("password")%></h1>
本頁(yè)面規(guī)定好了所需要傳遞的參數(shù)內(nèi)容,后面進(jìn)行導(dǎo)入操作。<%@ page pageEncoding="GBK"%><h1>Hello World!</h1><jsp:include page="param.jsp"> <jsp:param name="username" value="Tom"/> <jsp:param name="password" value="123456"/></jsp:include>
需要特別注意的是,這種標(biāo)簽指令類似HTML代碼,是不可能寫在Scriptlet之中的。如果現(xiàn)在要想傳遞一個(gè)變量的數(shù)據(jù)到被包含頁(yè)面,那么就只能夠利用表達(dá)式輸出了。<%@ page pageEncoding="GBK"%><h1>Hello World!</h1><% String str="123456";%><jsp:include page="param.jsp"> <jsp:param name="username" value="Tom"/> <jsp:param name="password" value="<%=str%>"/></jsp:include>
目前傳遞變量采用的是表達(dá)式輸出,以后會(huì)有其他形式。<%@ page pageEncoding="GBK"%><% int num=10;%><h1>note.jsp,num=<%=num%></h1>
例 使用靜態(tài)導(dǎo)入<%@ page pageEncoding="GBK"%><%@include file="note.jsp"%><% int num=2;%><h1>包含頁(yè),num=<%=num%></h1>
此時(shí)出現(xiàn)語(yǔ)法錯(cuò)誤,直接提示變量num重復(fù)(Duplicate local variable num)。<%@ page pageEncoding="GBK"%><jsp:include page="note.jsp"/><% int num=2;%><h1>包含頁(yè),num=<%=num%></h1>
結(jié)果如下:<%@include file="路徑"%>
2.動(dòng)態(tài)導(dǎo)入語(yǔ)法<jsp:include page="路徑"> <jsp:param name="參數(shù)名稱" value="參數(shù)內(nèi)容"/> <jsp:param name="參數(shù)名稱" value="參數(shù)內(nèi)容"/> ......</jsp:include>
<jsp:forward page="路徑"> <jsp:param name="參數(shù)名稱" value="參數(shù)內(nèi)容"/> <jsp:param name="參數(shù)名稱" value="參數(shù)內(nèi)容"/> ......</jsp:forward>
例 實(shí)現(xiàn)跳轉(zhuǎn)操作--跳轉(zhuǎn)到param.jsp頁(yè)<%@page pageEncoding="GBK"%><h1>Hello World</h1><jsp:forward page="param.jsp"> <jsp:param name="username" value="Jacky"/> <jsp:param name="password" value="123456"/></jsp:forward>
此時(shí)可以發(fā)現(xiàn)頁(yè)面的內(nèi)容實(shí)現(xiàn)了跳轉(zhuǎn),但是路徑?jīng)]有發(fā)生任何的改變,這種跳轉(zhuǎn)稱為服務(wù)器端跳轉(zhuǎn)。關(guān)鍵詞:語(yǔ)法
客戶&案例
營(yíng)銷資訊
關(guān)于我們
客戶&案例
營(yíng)銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。