java数据交互_用java怎么实现与浏览器的数据交互?

看看java.net.HttpURLConnection这个类的用法,能够达到你的要求:

下面是一个例子:

1. package com.sw.study.urlConnection;

2.

3. import java.io.BufferedReader;

4. import java.io.InputStreamReader;

5. import java.io.OutputStream;

6. import java.net.HttpURLConnection;

7. import java.net.URL;

8. import java.net.URLConnection;

9. import java.util.HashMap;

10. import java.util.Map;

11.

12. public class URLConnectionUtil {

13.

14. private static final String SERVLET_POST = "POST" ;

15. private static final String SERVLET_GET = "GET" ;

16. private static final String SERVLET_DELETE = "DELETE" ;

17. private static final String SERVLET_PUT = "PUT" ;

18.

19. private static String prepareParam(Map paramMap){

20. StringBuffer sb = new StringBuffer();

21. if(paramMap.isEmpty()){

22. return "" ;

23. }else{

24. for(String key: paramMap.keySet()){

25. String value = (String)paramMap.get(key);

26. if(sb.length()<1){

27. sb.append(key).append("=").append(value);

28. }else{

29. sb.append("&").append(key).append("=").append(value);

30. }

31. }

32. return sb.toString();

33. }

34. }

35.

36. public static void doPost(String urlStr,Map paramMap ) throws Exception{

37. URL url = new URL(urlStr);

38. HttpURLConnection conn = (HttpURLConnection)url.openConnection();

39. conn.setRequestMethod(SERVLET_POST);

40. String paramStr = prepareParam(paramMap);

41. conn.setDoInput(true);

42. conn.setDoOutput(true);

43. OutputStream os = conn.getOutputStream();

44. os.write(paramStr.toString().getBytes("utf-8"));

45. os.close();

46.

47. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

48. String line ;

49. String result ="";

50. while( (line =br.readLine()) != null ){

51. result += "\n"+line;

52. }

53. System.out.println(result);

54. br.close();

55.

56. }

57.

58. public static void doGet(String urlStr,Map paramMap ) throws Exception{

59. String paramStr = prepareParam(paramMap);

60. if(paramStr == null || paramStr.trim().length()<1){

61.

62. }else{

63. urlStr +="?"+paramStr;

64. }

65. System.out.println(urlStr);

66. URL url = new URL(urlStr);

67. HttpURLConnection conn = (HttpURLConnection)url.openConnection();

68. conn.setRequestMethod(SERVLET_PUT);

69. conn.setRequestProperty("Content-Type","text/html; charset=UTF-8");

70.

71. conn.connect();

72. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

73. String line ;

74. String result ="";

75. while( (line =br.readLine()) != null ){

76. result += "\n"+line;

77. }

78. System.out.println(result);

79. br.close();

80. }

81.

82. public static void doPut(String urlStr,Map paramMap) throws Exception{

83. URL url = new URL(urlStr);

84. HttpURLConnection conn = (HttpURLConnection)url.openConnection();

85. conn.setRequestMethod(SERVLET_PUT);

86. String paramStr = prepareParam(paramMap);

87. conn.setDoInput(true);

88. conn.setDoOutput(true);

89. OutputStream os = conn.getOutputStream();

90. os.write(paramStr.toString().getBytes("utf-8"));

91. os.close();

92.

93. BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));

94. String line ;

95. String result ="";

96. while( (line =br.readLine()) != null ){

97. result += "\n"+line;

98. }

99. System.out.println(result);

100. br.close();

101.

102. }

103.

104. public static void doDelete(String urlStr,Map paramMap) throws Exception{

105. String paramStr = prepareParam(paramMap);

106. if(paramStr == null || paramStr.trim().length()<1){

107.

108. }else{

109. urlStr +="?"+paramStr;

110. }

111. System.out.println(urlStr);

112. URL url = new URL(urlStr);

113. HttpURLConnection conn = (HttpURLConnection)url.openConnection();

114. conn.setDoOutput(true);

115. conn.setRequestMethod(SERVLET_DELETE);

116. //屏蔽掉的代码是错误的,java.net.ProtocolException: HTTP method DELETE doesn't support output

117. /* OutputStream os = conn.getOutputStream();

118. os.write(paramStr.toString().getBytes("utf-8"));

119. os.close(); */

120.

121. if(conn.getResponseCode() ==200){

122. System.out.println("成功");

123. }else{

124. System.out.println(conn.getResponseCode());

125. }

126. }

127.

128. public static void main(String[] args) throws Exception{

129. String urlStr = "http://localhost:8080/SwTest/ReceiveDataServlet";

130. Map map = new HashMap();

131. map.put("username","张三");

132. map.put("password","88888");

133. // URLConnectionUtil.doGet(urlStr, map);

134. // URLConnectionUtil.doPost(urlStr, map);

135. // URLConnectionUtil.doPut(urlStr, map);

136. URLConnectionUtil.doDelete(urlStr, map);

137.

138. }

139.

140.

141. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值