Ⅰ java ActionForward 如何轉發參數
可以這樣:在b的最後寫return new ActionForward("/xxx.do?method=a");
其中xxx是你在struts-config.xml配置的action訪問名稱,同時在b中記得寫request.setAttribute("id",id);這樣才能讓a接收
Ⅱ java web頁面傳遞參數到另一個頁面處理
你說:比如id:xxx 附值上去後
你可以把id=XXX 放在action後面,即 <form action=BB.action?id=XXX > 這樣提交請求,那在另一個頁面 就可版以直接用權request.getParameter("id")來獲取到了。
第二種方式:你可以把這些信息存放在session中,這樣在另一個頁面,你就可以${sessionScope.id}來獲取了
Ⅲ java 參數傳遞問題
Java的參數傳遞總結:
JAVA的參數傳遞總是傳"值",但是傳值方式也分為兩種方式,它們是靠傳遞參數的類型區分的。這兩種類型分別為JAVA的基礎類型和Object(對象)類型;基礎類型包括boolean,byte,short,char,int,long,float,double,而Object就是對象,如數組.在參數為基礎類型時,見代碼:
public class A{
public static void main(String arg[]){
int a=3;
method1(a);
System.out.println(a);
}
public static void method1(int a){
a=4;
}
}
此時結果的輸出將是1,而且只要你的值在Main函數中沒變,a的值不管怎麼傳都不回變,這是因為a是傳值,而這個"值"是a的一個拷貝,a的值在傳遞後的改變只是改變了a的拷貝的內容,並沒有改變真正的a的值;對於參數為對象
public class A{ public class A{
public static void main(String arg[]){ public static void main(String arg[]){
int[] a=new int[1]; int[] a=new int[1];
a[0]=3; a[0]=3;
method1(a); method1(a);
System.out.println(a[0]); System.out.println(a[0]);
} }
public static void method1(int[] a){ public static void method1(int[] a){
a[0]--; a=new int[0];
} a[0]=4;
} }
}
左邊的結果將是2,右邊的結果將是3(未變),原因是:在傳遞的參數為對象時,這個傳遞的"值"中放的內容實際上是對向所在的地址,左邊的情況是指針定位到對象的地址後,在上面把內容給改了,所以數組的值後會改變,而右邊的情況為給對象新分配了一個指針到新的地址上面去,所以所有的操作都在新的地址上面,並不會影響原來的值。註:對於String,Interger,Boolean,Double等的系統對象,它們雖然是Object,但是任何方式的傳遞參數的值得改變並不會影響原來的值。
Ⅳ JAVA中傳遞實參的方法,求舉例解釋
引用傳遞傳入的是一個地址. 這個地址指向一個類對象.
下面舉個例子吧.
一家快遞公司有兩個快遞員A和B. 在某個地方有一個C倉庫, 裡面有10個包裹.
現在領導分別叫A和B去C取3個包裹. A先取走了3個包裹. 當B後來去C的時候, C有多少個包裹呢? 是7個而不是10個. B再取走3個後, C就只有4個包裹了.
就是這個道理.
Ⅳ 關於java參數傳遞
Java基本數據類型傳入方法是值傳遞,也就蔽肢是將值賦值給方法參數,在方法在改參數與原變數無關。
而其他三個都是引用數據類型,傳遞念並凳的都是地址,方法根據地址操作都是原對象,所以修改了。仔旅
Ⅵ Java 傳參
一步一燃冊步分析啊。
1.首先 x = new x2(5);執行完後,X2中x = 5,者扮super.x=3。
2.然後 x.sety();執行完後,y=super.x*this.x = 3* 5 = 15;
3.接著,x.show();執行完後,列印輸出 3 5;
4.System.out.println(x.gety()); 輸出15
5.System.out.println(x.y);輸出15.
如果你去掉x.sety();後,相當於沒有執行第2步,就是沒有給y賦值,所以你訪問y的時候的值只能是默首段灶認值0
Ⅶ Java 中傳參是怎麼一回事
這個很容易理解,你既然問到了傳參那肯定已經了解了什麼叫方法.
我舉個栗子,我們使用atm機取錢,atm機能做的事情就是判斷密碼是否正確然後響應用戶需求
那麼它的方法就不能是個無參的方法,因為它不知道接下來那個用戶的密碼是什麼。如果這個方法只負責響應操作沒有密碼校驗,那隻需要方法里設定好的那個固定值就可以無限通過了。所以方法需要將密碼的校驗作為一個參數提取出來。我給你寫兩個方法你可以看一下:
public static void getMoney(){
//設置一個初始密碼
String pwd = "123456";
//判斷密碼
if(pwd.equals("123456")){
System.out.println("開始取錢....");
System.out.println(".........");
System.out.println("提取成功....");
}
}
public static void getMoney(String pwd){
//判斷密碼
if(pwd.equals("123456")){
System.out.println("開始校驗....");
System.out.println("密碼正確....");
System.out.println("提取成功....");
}else{
System.out.println("開始校驗....");
System.out.println("密碼錯誤....");
System.out.println("提取失敗....");
}
}
public static void main(String[] args) {
//聲明一個密碼
String pwd = null;
//控制台輸入
BufferedReader str=new BufferedReader(new InputStreamReader(System.in));
System.out.println("請輸入密碼:");
try {
pwd=str.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//調用atm取錢方法
System.out.println("方法一執行:");
getMoney();//無參方法
System.out.println("\n");
System.out.println("方法二執行:");
getMoney(pwd);//有參方法
}
你可以直接粘貼到任何一個普通類中使用(寫的好累...),看完它的流程你基本上就明白參數的作用了,不懂再問
Ⅷ java HttpPost怎麼傳遞參數
public class HttpURLConnectionPost {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
readContentFromPost();
}
public static void readContentFromPost() throws IOException {
// Post請求的url,與get不同的是不需要帶參數
URL postUrl = new URL("http://www.xxxxxxx.com");
// 打開連接
HttpURLConnection connection = (HttpURLConnection) postUrl.openConnection();
// 設置是否向connection輸出,因為這個是post請求,參數要放在
// http正文內,因此需要設為true
connection.setDoOutput(true);
// Read from the connection. Default is true.
connection.setDoInput(true);
// 默認是 GET方式
connection.setRequestMethod("POST");
// Post 請求不能使用緩存
connection.setUseCaches(false);
//設置本次連接是否自動重定向
connection.setInstanceFollowRedirects(true);
// 配置本次連接的Content-type,配置為application/x-www-form-urlencoded的
// 意思是正文是urlencoded編碼過的form參數
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
// 連接,從postUrl.openConnection()至此的配置必須要在connect之前完成,
// 要注意的是connection.getOutputStream會隱含的進行connect。
connection.connect();
DataOutputStream out = new DataOutputStream(connection
.getOutputStream());
// 正文,正文內容其實跟get的URL中 '? '後的參數字元串一致
String content = "欄位名=" + URLEncoder.encode("字元串值", "編碼");
// DataOutputStream.writeBytes將字元串中的16位的unicode字元以8位的字元形式寫到流裡面
out.writeBytes(content);
//流用完記得關
out.flush();
out.close();
//獲取響應
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null){
System.out.println(line);
}
reader.close();
//該乾的都幹完了,記得把連接斷了
connection.disconnect();
}
關於Java HttpURLConnection使用
public static String sendPostValidate(String serviceUrl, String postData, String userName, String password){
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
log.info("POST介面地址:"+serviceUrl);
URL realUrl = new URL(serviceUrl);
// 打開和URL之間的連接
URLConnection conn = realUrl.openConnection();
HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
// 設置通用的請求屬性
httpUrlConnection.setRequestProperty("accept","*/*");
httpUrlConnection.setRequestProperty("connection", "Keep-Alive");
httpUrlConnection.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
httpUrlConnection.setRequestMethod("POST");
httpUrlConnection.setRequestProperty("Content-Type","application/json;charset=UTF-8");
Base64 base64 = new Base64();
String encoded = base64.encodeToString(new String(userName+ ":" +password).getBytes());
httpUrlConnection.setRequestProperty("Authorization", "Basic "+encoded);
// 發送POST請求必須設置如下兩行
httpUrlConnection.setDoOutput(true);
httpUrlConnection.setDoInput(true);
// 獲取URLConnection對象對應的輸出流
out = new PrintWriter(new OutputStreamWriter(httpUrlConnection.getOutputStream(),"utf-8"));
// 發送請求參數
out.print(postData);
out.flush();
// 定義BufferedReader輸入流來讀取URL的響應
in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream(),"utf-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
//
// if (!"".equals(result)) {
// BASE64Decoder decoder = new BASE64Decoder();
// try {
// byte[] b = decoder.decodeBuffer(result);
// result = new String(b, "utf-8");
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
return result;
} catch (Exception e) {
log.info("調用異常",e);
throw new RuntimeException(e);
}
//使用finally塊來關閉輸出流、輸入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException e){
log.info("關閉流異常",e);
}
}
}
}
Ⅸ java參數傳遞的問題。
你自己定義的對象,以及其他對象並嫌作為方法參數傳時,是引用傳遞,在接收該參數的方法內戚沖改變對象參數的值絕仔手是會影響到原值的,而Java中八個基本類型的方法參數傳遞則是值傳遞,在接收的方法內改變值,也只是改變形式參數,而不會影響到實參