Ⅰ 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中八个基本类型的方法参数传递则是值传递,在接收的方法内改变值,也只是改变形式参数,而不会影响到实参