`
samjavaeye
  • 浏览: 193825 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

URLConnection笔记

    博客分类:
  • Java
阅读更多

建立URLConnection

URL url = new URL(http://localhost:8080/wappush/ServletTest);

URLConnection uc = url.openConnection();

要读写连接,必须做相应设置:

uc.setDoInput(true);

uc.setDoOutput(true);

这两条语句的顺序可以随意。

Get还是Post

如果本次连接既要发送数据也要获得响应,必须先调用了URLConnectiongetOutputStream()方法,才能再调用getInputStream()方法,否则会产生异常:java.net.ProtocolException: Cannot write output after reading input.

只要调用了URLConnectiongetOutputStream()方法,对应的Servlet就会执行doPost方法,如果只调用了getInputStream()方法,则对应的Servlet会执行doGet方法。如果不调用上述两个方法中的任何一个,则对应的Servlet不执行任何操作。

 

测试用的Servlet

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletTest extends HttpServlet
{
	public void doGet(HttpServletRequest req, HttpServletResponse res)
		throws IOException, ServletException
	{
		System.out.println(getTimeString() + " doGet()");
	}

	public void doPost(HttpServletRequest req, HttpServletResponse res)
		throws IOException, ServletException
	{
		System.out.println(getTimeString() + " doPost()");
	}
	private String getTimeString()
	{
		return new SimpleDateFormat("HH:mm:ss").format(new Date());
	}
}

 

模拟表单提交

 

DataOutputStream out = new DataOutputStream(new BufferedOutputStream(uc.getOutputStream()));
StringBuffer sb = new StringBuffer();
sb.append("name=sam&age=26&phoneNumber=13632624392");
sb.append("&Text=test&url=http://wap.haoxi.com");
out.writeBytes(sb.toString());
out.flush();
out.close();
BufferedReader reader = new BufferedReader(new InputStreamReader(uc.getInputStream()));
reader.close();

 

对应的Servlet中,可以用以下方法

private void printParameters(HttpServletRequest req)

{

Enumeration e = req.getParameterNames();

String pName;

while (e.hasMoreElements())

{

pName = (String)e.nextElement();

System.out.println(pName + "=" + req.getParameter(pName));

}

}

得到输出结果:

name=sam

Text=test

url=http://wap.haoxi.com

phoneNumber=13632624392

age=26

<!--EndFragment-->

 

分享到:
评论

相关推荐

    Java开发详解.zip

    031902_【第19章:Java网络编程】_URL与URLConnection笔记.pdf 031903_【第19章:Java网络编程】_URLEncoder与URLDecoder笔记.pdf 031904_【第19章:Java网络编程】_TCP程序设计笔记.pdf 031905_【第19章:Java网络...

    非常详细javaSE学习笔记.rar

    9. **网络编程**:Socket编程,ServerSocket,URL,URLConnection等用于网络通信的API。 10. **枚举与注解(Annotations)**:枚举类型和注解在Java中的应用,如使用注解进行编译时检查或运行时元数据标记。 11. **...

    java se学习笔记

    - **URL与URLConnection**:HTTP请求的发送与接收。 9. **反射机制**: - **Class类**:获取类的信息,动态创建对象,调用方法等。 - **Annotations(注解)**:自定义注解和元注解的使用。 10. **Java虚拟机...

    java各种笔记.zip

    - **URL与URLConnection**:用于访问网络资源,读取网页数据。 8. **JVM**: - **内存模型**:堆、栈、方法区、本地方法栈、程序计数器等区域的理解。 - **垃圾回收**:GC如何自动回收不再使用的对象,了解不同...

    javase笔记.7z

    Java的Socket编程接口提供了TCP/IP通信的能力,而URL和URLConnection类支持HTTP协议的网络访问。 八、反射与动态代理 反射机制允许程序在运行时检查类的信息,并能动态调用方法和访问字段。动态代理则允许在运行时...

    学习笔记 十分有用 java

    你还能了解到URL、URLConnection以及HTTPClient的相关知识,这些都是构建网络应用的关键。 此外,笔记中还包含了对Tomcat服务器的介绍和使用。Tomcat是一款轻量级的Java Web应用服务器,是初学者部署和运行Servlet...

    java精华学习笔记

    - URL和URLConnection:访问网络资源。 8. **Java反射机制** - 在运行时动态获取类的信息并操作类的对象,如创建未知类的对象、调用未知方法。 9. **JVM与内存管理** - 垃圾回收机制:自动回收不再使用的对象,...

    李兴华javase全部笔记.zip

    此外,URL和URLConnection类用于访问和处理网络资源。 8. **反射机制**:反射是Java的一种强大特性,允许程序在运行时检查和操作类、接口、字段和方法。它常用于动态加载类、创建对象、访问私有成员以及实现元编程...

    狂神说笔记,个人觉得不赖

    同时,`URL`和`URLConnection`类则用于处理互联网资源的访问。 最后,我们还会涉及异常处理,`java.lang.Throwable`及其子类如`Exception`和`Error`,构成了Java的异常体系,它们帮助我们在程序中捕获和处理错误...

    日常记录笔记,JILU笔记.zip

    9. **网络编程**:Socket通信、ServerSocket、URL、URLConnection等。 10. **反射与注解**:反射机制的使用、注解的定义与元注解。 11. **JVM内存模型**:堆内存、栈内存、方法区、本地方法栈、垃圾收集机制。 12...

    java面试题 学习笔记

    2. URL和URLConnection:学习从网络获取数据,包括HTTP请求的发送和响应的处理。 八、反射 1. 类加载:理解类加载过程,以及Class类的使用。 2. 动态类型:通过反射实现动态调用方法和访问字段。 九、JVM 1. 类...

    java笔记代码

    - **URL与URLConnection**:访问网络资源,获取网页内容。 8. **小程序开发** - **JAVAFX**:用于构建桌面应用,提供丰富的UI组件和动画效果。 - **Android Studio**:开发Android小程序,包括XML布局、Activity...

    java学习笔记JDK6

    7. **网络编程**:Java提供了Socket和ServerSocket类,用于实现客户端-服务器通信,同时还有URL和URLConnection类用于访问网络资源。 8. **反射机制**:允许在运行时检查类的信息,创建并操作类的对象,增强了程序...

    北大青鸟的学习笔记java

    8. **网络编程**:Java提供了丰富的API来处理网络编程,如Socket和ServerSocket类用于创建客户端和服务器端的连接,URL和URLConnection类用于访问网络资源。 9. **反射机制**:Java反射API允许程序在运行时动态获取...

    良葛格Java 学习笔记(繁体全)

    - **URL与URLConnection**:用于获取和连接网络资源。 9. **反射**: - **Class类**:代表运行时的类信息,可以动态获取类的结构并操作。 - **newInstance()** 和 **getDeclaredMethods()** 等方法,用于运行时...

    面向对象程序设计Java听课笔记

    浙江大学翁恺老师的Java视频课程深入浅出地讲解了这一主题,这些笔记旨在帮助我们回顾和巩固Java开发的关键知识。 1. 面向对象编程基础 - 类与对象:Java中的基本单元是类,它是具有属性(字段)和行为(方法)的...

    java复习笔记

    URL和URLConnection用于访问网络资源。 九、反射机制 Java反射机制允许程序在运行时检查类的信息,如类名、方法名、参数类型,并能动态调用方法和访问字段。它在插件系统、序列化、动态代理等领域有广泛应用。 十...

    MLDN老师java笔记(全面 必看)

    Java提供了丰富的API进行网络编程,如Socket和ServerSocket类用于客户端和服务器通信,URL和URLConnection用于访问网络资源。 【反射】 Java反射机制允许程序在运行时动态地获取类的信息并调用其方法,增强了程序的...

    Java学习超强笔记

    - URL与URLConnection:网络资源的访问与数据交换。 9. **反射机制** - 类加载器:了解类是如何被加载到JVM中的。 - Class类:获取类的信息,动态创建对象,调用方法。 - 构造器、方法和字段的反射操作。 10. ...

    java源码笔记

    - URL与HTTP:如何使用URL和URLConnection类进行HTTP请求。 - NIO(非阻塞I/O):Java提供的高效I/O模型,用于提高网络通信效率。 - 多线程网络编程:利用Thread或Runnable实现并发处理网络请求,提高服务性能。 ...

Global site tag (gtag.js) - Google Analytics