① 如何在JSP中定義一個方法,並在方法中得到session中的一個值,然後顯示相應的內容
JSP里就算是一個方法體了. JAVA中是不能在方法中定義方法的, 但是可以定義一個內部類, 重載類中的方法, 然後調用內部類的方法.
如:
final Session s = request.getSession();
new org.apache.commons.collections.Closure() {
public void execute(Object o) {
s.xxx()
}
}.execute()
② jsp如何定義一個方法
<%! public void fun(){
System.out.print("000");
} %>
③ jsp頁面如何調用Servlet中自己定義的一個方法
jsp要調用servlet中自定義的方法需要把自定的方法放在doPost或者doGet或者init方法中。
舉例如下:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
System.out.println("doGet");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doPost(req, resp);
//調用自定義方法
returnBack(req,resp);
System.out.println("doPost");
}
//這里是自定義方法
public void returnBack(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
System.out.println("really!go home");
}
}
④ jsp定義函數
//取得網路上的列印機
function
getnetprinter()
{
var obj=new
ActiveXObject("WScript.Network");
var
netprinter=obj.EnumPrinterConnections();
for(i=0;i<netprinter.Count();i+=2)
{
document.writeln(netprinter.Item(i)+"="+netprinter.Item(i+1));
}
}
//取得磁碟信息 傳入參數如:getdiskinfo('c')
function
getdiskinfo(para)
{
var fs=new
ActiveXObject("scripting.filesystemobject");
d=fs.GetDrive(para);
s="卷標:" + d.VolumnName;
s+="------" +
"剩餘空間:" + d.FreeSpace/1024/1024 + "M";
s+="------" + "磁碟序列號:" +
d.serialnumber;
alert(s)
}
//取得系統目錄
function
getprocessnum()
{
var pnsys=new
ActiveXObject("WScript.shell");
pn=pnsys.Environment("PROCESS");
alert(pn("WINDIR"));
}
//啟動計算器
function runcalc()
{
var
calc=new ActiveXObject("WScript.shell");
calc.Run("calc");
}
//讀取注冊表中的值
function readreg()
{
var
myreadreg=new ActiveXObject("WScript.shell");
try{
alert(myreadreg.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\NeroCheck"));
}
catch(e)
{
alert("讀取的值不存在!");
}
}
//寫注冊表
function
writereg()
{
var mywritereg=new
ActiveXObject("WScript.shell");
try{
mywritereg.RegWrite("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest","c:\\mytest.exe");
alert("寫入成功!");
}
catch(e)
{
alert("寫入路徑不正確!");
}
}
//刪除注冊表
function
delreg()
{
var mydelreg=new
ActiveXObject("WScript.shell");
if(confirm("是否真的刪除?"))
{
try{
mydelreg.RegDelete("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\MyTest");
alert("刪除成功!");
}
catch(e)
{
alert("刪除路徑不正確");
}
}
}
//取得計算機名域名用戶名
function
netinfo()
{
var mynetinfo=new
ActiveXObject("WScript.network");
alert("計算機名:"+mynetinfo.ComputerName+"域名:"+mynetinfo.UserDomain+"用戶名:"+mynetinfo.UserName);
}
//返回系統中特殊目錄的路徑
(Fonts,AllUsersDesktop,Desktop,MyDocuments,Recent.....)
function
getspecialfolder()
{
var mygetfolder=new
ActiveXObject("WScript.shell");
if(mygetfolder.SpecialFolders("Fonts")!=null)
{
alert(mygetfolder.SpecialFolders("Fonts"));
}
}
//取得文件信息
調用方式如:getfileinfo('E:\\MyPlace\\TEST\\myjs.htm')
function
getfileinfo(para)
{
var myfile=new
ActiveXObject("scripting.filesystemobject");
var
fi=myfile.GetFile(para);
alert("文件類型:"+fi.type+"文件大小:"+fi.size/1024/1024+"M"+"最後一次訪問時間:"+fi.DateLastAccessed);
}
//取得客戶端的信息
function
clientInfo()
{
strClientInfo="availHeight=
"+window.screen.availHeight+"\n"+
"availWidth=
"+window.screen.availWidth+"\n"+
"bufferDepth=
"+window.screen.bufferDepth+"\n"+
"colorDepth=
"+window.screen.colorDepth+"\n"+
"colorEnable=
"+window.navigator.cookieEnabled+"\n"+
"cpuClass= "+window.navigator.cpuClass+"\n"+
"height= "+window.screen.height+"\n"+
"javaEnable=
"+window.navigator.javaEnabled()+"\n"+
"platform= "+window.navigator.platform+"\n"+
"systemLanguage=
"+window.navigator.systemLanguage+"\n"+
"userLanguage=
"+window.navigator.userLanguage+"\n"+
"width=
"+window.screen.width;
alert(strClientInfo);
}
//Dilog
Helper對象的使用
function changeColor()//Dilog Helper對象的使用之調用系統調色板
{
var
sColor=dlgHelper.choosecolordlg();
sColor=sColor.toString(16);
if
(sColor.length < 6) {
var sTempString =
"000000".substring(0,6-sColor.length);
sColor =
sTempString.concat(sColor);
}
alert(sColor);
mybody.style.backgroundColor=sColor;
}
function
getFonts()//Dilog Helper對象的使用之取得系統支持的字體
{
var
strFonts="";
for(var i=1;i<dlgHelper.fonts.count;i++)
{
strFonts=strFonts+dlgHelper.fonts(i)+"|";
}
alert(strFonts);
}
function getBlockFormat()//Dilog
Helper對象的使用之取得系統中塊的格式信息(如:標題1、標題2....)
{
var
strBlockFormat="";
for(var
i=1;i<dlgHelper.BlockFormats.count;i++)
{
strBlockFormat=strBlockFormat+dlgHelper.BlockFormats(i)+"|";
}
alert(strBlockFormat);
}
function
createTxtLink()//給選中的文本創建鏈接
{
var
sText=document.selection.createRange();
if(sText.text!="")
{
document.execCommand("CreateLink");
if(sText.parentElement().tagName=="A")
{
sText.parentElement().innerText=sText.parentElement().href;
document.execCommand("ForeColor",false,"#ffff00");
}
}
}
//以下為取得BlockFormats,填充Select(id為myselect)並根據選擇不同的BlockFormat改變樣式
//函數fillselect()和changeformat()
//對execCommand的一點說明:Executes
a command over the given selection or text range
function
fillselect()
{
var item=document.createElement("OPTION")
item.text="請選擇";
item.value="";
myselect.add(item);
for(var
i=1;i<dlgHelper.BlockFormats.count;i++)
{
item=document.createElement("OPTION");
item.text=dlgHelper.BlockFormats(i);
item.value="http://blog.77169.com/dlgHelper.BlockFormats(i);
"
myselect.add(item);
}
}
function changeformat()
{
var sSelect=myselect.options[myselect.selectedIndex].value;
document.execCommand("FormatBlock",false,sSelect);
}
//取得驅動器類型,調用如:ShowDriveType('c:')
function
ShowDriveType(drvpath)
{
fs=new
ActiveXObject("scripting.filesystemobject");
disk=fs.GetDrive(drvpath);
var whichtype="";
switch(disk.DriveType)
{
case 0:
whichtype="Unknown"
break
case 1:
whichtype="Removable"
break
case 2:
whichtype="Fixed"
break
case 3:
whichtype="Network"
break
case 4:
whichtype="CD-ROM"
break
case 5:
whichtype="RAM Disk"
}
alert(whichtype);
//顯示磁碟的SerialNumber
try{
alert(disk.SerialNumber);
}
catch(e){
alert(e.message);
}
alert(disk.VolumeName);//取得卷標
}
</script>
-------------------------
<OBJECT id=dlgHelper
CLASSID="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" width="0px"
height="0px"></OBJECT>
⑤ 29. 在JSP程序中若想定義一個方法,必須將該方法放在下列哪種標記里( ) A、< % %> B、<%
C
程序段中不能定義方法 A錯
B是寫指令如page、include等 B錯
D是JSP的注釋格式 D錯
C是JSP聲明,可以定義方法、全局變數、聲明類等 所以選C
⑥ jsp頁面中如何定義一個方法。
1、在WEB-INF下新建web.xml文件,設置默認主頁路徑,配置代碼見下圖。
⑦ java 在 JSP 頁面中定義一個方法,如下所示,選擇一個正確的答:
答案為C
因為doPrint方法中的out未定義
⑧ 簡單!在jsp頁面中能直接定義函數么
可以定義函數
要這樣
<%!
修飾符 返回值 函數名(參數){
函數體....
}
%>
jsp最終會編譯成servlet,servlet其實就是一個指定了格式的java程序,用<%!..%>定義的在servlet中編譯成了成員方法或是成員變數。
javascript也可以直接定義函數,類似
<script type="text/javascript">
function chan(obj){....}
</script>
不過調用有所不同,如果是button是onclick(chan(this)),如果是其他的用onchange(chan(this))這樣調用。
有時間看下servlet的東西吧,其實所有的jsp文件最終都會被tomcat翻譯成一個servlet文件再執行,這也是和asp最大的不同。
⑨ JSP定義類和方法
在回答你的問題之前建議你先好好學一下java基礎。
方法必須在類里定義,做個比喻:人是一個類,吃飯、睡覺就是該類的方法。
⑩ 在一個jsp頁面如何聲明供整個頁面使用的變數和方法。請舉例
一、變數和方法的聲明
1.在<%!與%>之間放置聲明變數是頁面的成員變數。聲明的變數在整個JSP頁面都有效。例如
<%!
int i=100;
Data date;
%>
因為JSP引擎轉換JSP頁面成Java文件時,將這些變數作為類的成員變數,這些變數的內存空間直到伺服器關閉才被釋放。
所以所有請求該頁面的線程共享JSP頁面的成員變數,任何用戶對該成員變數的操作結果都影響其它客戶。
簡單頁面計數器
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<body>
<%!
int i=0;
%>
<%
i++;
%>
<p>
您是第<%=i%>個訪問本站的用戶。
</body>
</html>
2. 聲明方法
在<%!和%>之間聲明的方法在整個JSP頁面都有效,但是該方法內定義的變數只在該方法內有效。當多個用戶請求一個JSP頁面時,可以使用方法操作成員變數。
<%@ page contentType="text/htnl;charset=gb2312"%>
<html>
<body>
<%!
int number=0;
synchronized void contPeople()
{
number++;
}
%>
<%
countPeople();
%>
<p>
您是第<%=number%>個訪問客戶。
</body>
</html>
將訪問人數保存到文本文件中
<%@ page contentType="text/htnl;charset=gb2312"%>
<%@ page import="java.io.*" %>
<html>
<body>
<%!
int number=0;
File file=new File("count.txt");
synchronized void contPeople()
{
if(!file.exists())
{
number++;
try{
file.createNewfile();
FileOutputStream out =new FileOutputStream("count.txt");
DataOutputStream dataOut=new DataOutputStream(out);
dataOut.writeInt(number);
out.close();
dataOut.close();
}
catch(IOException ex){}
}
else
{
try{
FileInputStream in=new FileInputStream("count.txt");
DataInputStream dataIn=new DataInputStream(in);
number=dataIn.readInt();
number++;
in.close();
dataIn.close();
FileOutputStream out =new FileOutputStream("count.txt");
DataOutputStream dataOut=new DataOutputStream(out);
dataOut.writeInt(number);
out.close();
dataOut.close();
}
catch(IOException ex){}
}
}
%>
<%
countPeople();
%>
<p>
您是第<%=number%>個訪問客戶。
</body>
</html>