线程安全主要考虑那些方面?
我觉得我的程序里面的系统属性设置和文件的读写可能不安全?
///////////////////////////////////////代码////////////////////////////////////////////////import java.net.URL;
import java.net.URLConnection;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Properties;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
public class HttpRequest {
public static final int POST = 0;
public static final int GET = 1;
private String protocol=null;
private String serverDomain=null;
private String serverPort=null;
private String proxyDomain=null;
private String proxyPort=null;
private String proxyUsername=null;
private String proxyPassword=null;
private String cookie=null;
private String returnFilename=null;
HttpRequest()
{
}
public HttpRequest(String protocol,String serverDomain,String serverPort)
{
this.protocol=protocol;
this.serverDomain=serverDomain;
this.serverPort=serverPort;
}
public HttpRequest(String protocol,String serverDomain,String serverPort,String proxyDomain,String proxyPort)
{
this(protocol,serverDomain,serverPort);
this.proxyDomain=proxyDomain;
this.proxyPort=proxyPort;
}
public HttpRequest(String protocol,String serverDomain,String serverPort,String proxyDomain,String proxyPort,String proxyUsername,String proxyPassword)
{
this(protocol,serverDomain,serverPort,proxyDomain,proxyPort);
this.proxyUsername=proxyUsername;
this.proxyPassword=proxyPassword;
}
public void setProtocol(String protocol)
{
this.protocol=protocol;
}
public void setServer(String serverDomain,String serverPort)
{
this.serverDomain=serverDomain;
this.serverPort=serverPort;
}
public void setProxy(String proxyDomain,String proxyPort)
{
this.proxyDomain=proxyDomain;
this.proxyPort=proxyPort;
}
public void setProxyInfo(String proxyUsername,String proxyPassword)
{
this.proxyUsername=proxyUsername;
this.proxyPassword=proxyPassword;
}
public void setCookie(String cookie)
{
this.cookie=cookie;
}
public String getCookie()
{
return cookie;
}
public void setReturnFilename(String returnFilename)
{
this.returnFilename=returnFilename;
}
public void httpRequest(int command,String serverPage,String request,String uploadFilename)
{
String tempProxyDomain=null;
String tempProxyPort=null;
if(protocol.toLowerCase().equals("http"))
{
if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
{
tempProxyDomain=System.getProperty("proxyHost");
tempProxyPort=System.getProperty("proxyPort");
System.setProperty("proxyHost",proxyDomain);
System.setProperty("proxyPort",proxyPort);
System.out.println("http proxy");
// System.out.println(tempProxyDomain);
// System.out.println(tempProxyPort);
}
}
else if(protocol.toLowerCase().equals("https"))
{
tempProxyDomain=System.getProperty("https.proxyHost");
tempProxyPort=System.getProperty("https.proxyPort");
System.setProperty("https.proxyHost",proxyDomain);
System.setProperty("https.proxyPort",proxyPort);
System.out.println("https proxy");
// System.out.println(tempProxyDomain);
// System.out.println(tempProxyPort);
}
String str_url=null;
if(protocol.equalsIgnoreCase("http"))
{
str_url=protocol+"://"+serverDomain+"/"+serverPage+"?"+request;
}
else if(protocol.equalsIgnoreCase("https"))
{
str_url=protocol+"://"+serverDomain+"/"+serverPage;
}
else
{
System.out.println("Unknown protocol");
}
System.out.println(str_url);
URL url = null;
try {
url = new URL(str_url);
} catch (MalformedURLException e) {
System.out.println("Conntion fail 1!");
e.printStackTrace();
} HttpURLConnection con = null;
try {
con = (HttpURLConnection)url.openConnection();
con.setFollowRedirects(true);
System.out.println("set redirect");
} catch (IOException e) {
System.out.println("Conntion fail 2!");
e.printStackTrace();
}
if(command==POST)
{
con.setDoOutput(true);
}
try { BufferedReader in = new BufferedReader(new InputStreamReader(con
.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
} in.close();
} catch (IOException e) {
System.out.println("Conntion fail 3!");
e.printStackTrace();
}
if(protocol.toLowerCase().equals("http"))
{
if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
{
if(tempProxyDomain!=null&&tempProxyPort!=null)
{
System.setProperty("proxyHost",tempProxyDomain);
System.setProperty("proxyPort",tempProxyPort);
}
}
}
else if(protocol.toLowerCase().equals("https"))
{
if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
{
if(tempProxyDomain!=null&&tempProxyPort!=null)
{
System.setProperty("https.proxyHost",tempProxyDomain);
System.setProperty("https.proxyPort",tempProxyPort);
}
}
}
}
private boolean isProxy(String proxyDomain,String proxyPort)
{
// if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
if(proxyDomain!=null&&proxyPort!=null)
return true;
return false;
}
}
我觉得我的程序里面的系统属性设置和文件的读写可能不安全?
///////////////////////////////////////代码////////////////////////////////////////////////import java.net.URL;
import java.net.URLConnection;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Properties;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
public class HttpRequest {
public static final int POST = 0;
public static final int GET = 1;
private String protocol=null;
private String serverDomain=null;
private String serverPort=null;
private String proxyDomain=null;
private String proxyPort=null;
private String proxyUsername=null;
private String proxyPassword=null;
private String cookie=null;
private String returnFilename=null;
HttpRequest()
{
}
public HttpRequest(String protocol,String serverDomain,String serverPort)
{
this.protocol=protocol;
this.serverDomain=serverDomain;
this.serverPort=serverPort;
}
public HttpRequest(String protocol,String serverDomain,String serverPort,String proxyDomain,String proxyPort)
{
this(protocol,serverDomain,serverPort);
this.proxyDomain=proxyDomain;
this.proxyPort=proxyPort;
}
public HttpRequest(String protocol,String serverDomain,String serverPort,String proxyDomain,String proxyPort,String proxyUsername,String proxyPassword)
{
this(protocol,serverDomain,serverPort,proxyDomain,proxyPort);
this.proxyUsername=proxyUsername;
this.proxyPassword=proxyPassword;
}
public void setProtocol(String protocol)
{
this.protocol=protocol;
}
public void setServer(String serverDomain,String serverPort)
{
this.serverDomain=serverDomain;
this.serverPort=serverPort;
}
public void setProxy(String proxyDomain,String proxyPort)
{
this.proxyDomain=proxyDomain;
this.proxyPort=proxyPort;
}
public void setProxyInfo(String proxyUsername,String proxyPassword)
{
this.proxyUsername=proxyUsername;
this.proxyPassword=proxyPassword;
}
public void setCookie(String cookie)
{
this.cookie=cookie;
}
public String getCookie()
{
return cookie;
}
public void setReturnFilename(String returnFilename)
{
this.returnFilename=returnFilename;
}
public void httpRequest(int command,String serverPage,String request,String uploadFilename)
{
String tempProxyDomain=null;
String tempProxyPort=null;
if(protocol.toLowerCase().equals("http"))
{
if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
{
tempProxyDomain=System.getProperty("proxyHost");
tempProxyPort=System.getProperty("proxyPort");
System.setProperty("proxyHost",proxyDomain);
System.setProperty("proxyPort",proxyPort);
System.out.println("http proxy");
// System.out.println(tempProxyDomain);
// System.out.println(tempProxyPort);
}
}
else if(protocol.toLowerCase().equals("https"))
{
tempProxyDomain=System.getProperty("https.proxyHost");
tempProxyPort=System.getProperty("https.proxyPort");
System.setProperty("https.proxyHost",proxyDomain);
System.setProperty("https.proxyPort",proxyPort);
System.out.println("https proxy");
// System.out.println(tempProxyDomain);
// System.out.println(tempProxyPort);
}
String str_url=null;
if(protocol.equalsIgnoreCase("http"))
{
str_url=protocol+"://"+serverDomain+"/"+serverPage+"?"+request;
}
else if(protocol.equalsIgnoreCase("https"))
{
str_url=protocol+"://"+serverDomain+"/"+serverPage;
}
else
{
System.out.println("Unknown protocol");
}
System.out.println(str_url);
URL url = null;
try {
url = new URL(str_url);
} catch (MalformedURLException e) {
System.out.println("Conntion fail 1!");
e.printStackTrace();
} HttpURLConnection con = null;
try {
con = (HttpURLConnection)url.openConnection();
con.setFollowRedirects(true);
System.out.println("set redirect");
} catch (IOException e) {
System.out.println("Conntion fail 2!");
e.printStackTrace();
}
if(command==POST)
{
con.setDoOutput(true);
}
try { BufferedReader in = new BufferedReader(new InputStreamReader(con
.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
} in.close();
} catch (IOException e) {
System.out.println("Conntion fail 3!");
e.printStackTrace();
}
if(protocol.toLowerCase().equals("http"))
{
if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
{
if(tempProxyDomain!=null&&tempProxyPort!=null)
{
System.setProperty("proxyHost",tempProxyDomain);
System.setProperty("proxyPort",tempProxyPort);
}
}
}
else if(protocol.toLowerCase().equals("https"))
{
if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
{
if(tempProxyDomain!=null&&tempProxyPort!=null)
{
System.setProperty("https.proxyHost",tempProxyDomain);
System.setProperty("https.proxyPort",tempProxyPort);
}
}
}
}
private boolean isProxy(String proxyDomain,String proxyPort)
{
// if(!(proxyDomain.equals(""))&&!(proxyPort.equals("")))
if(proxyDomain!=null&&proxyPort!=null)
return true;
return false;
}
}
POST方法还没有写全