建立URLConnection
URL url = new URL(“http://localhost:8080/wappush/ServletTest”);
URLConnection uc = url.openConnection();
要读写连接,必须做相应设置:
uc.setDoInput(true);
uc.setDoOutput(true);
这两条语句的顺序可以随意。
Get还是Post?
如果本次连接既要发送数据也要获得响应,必须先调用了URLConnection的getOutputStream()方法,才能再调用getInputStream()方法,否则会产生异常:java.net.ProtocolException: Cannot write output after reading input.
只要调用了URLConnection的getOutputStream()方法,对应的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-->
分享到:
相关推荐
031902_【第19章:Java网络编程】_URL与URLConnection笔记.pdf 031903_【第19章:Java网络编程】_URLEncoder与URLDecoder笔记.pdf 031904_【第19章:Java网络编程】_TCP程序设计笔记.pdf 031905_【第19章:Java网络...
9. **网络编程**:Socket编程,ServerSocket,URL,URLConnection等用于网络通信的API。 10. **枚举与注解(Annotations)**:枚举类型和注解在Java中的应用,如使用注解进行编译时检查或运行时元数据标记。 11. **...
- **URL与URLConnection**:HTTP请求的发送与接收。 9. **反射机制**: - **Class类**:获取类的信息,动态创建对象,调用方法等。 - **Annotations(注解)**:自定义注解和元注解的使用。 10. **Java虚拟机...
- **URL与URLConnection**:用于访问网络资源,读取网页数据。 8. **JVM**: - **内存模型**:堆、栈、方法区、本地方法栈、程序计数器等区域的理解。 - **垃圾回收**:GC如何自动回收不再使用的对象,了解不同...
Java的Socket编程接口提供了TCP/IP通信的能力,而URL和URLConnection类支持HTTP协议的网络访问。 八、反射与动态代理 反射机制允许程序在运行时检查类的信息,并能动态调用方法和访问字段。动态代理则允许在运行时...
你还能了解到URL、URLConnection以及HTTPClient的相关知识,这些都是构建网络应用的关键。 此外,笔记中还包含了对Tomcat服务器的介绍和使用。Tomcat是一款轻量级的Java Web应用服务器,是初学者部署和运行Servlet...
- URL和URLConnection:访问网络资源。 8. **Java反射机制** - 在运行时动态获取类的信息并操作类的对象,如创建未知类的对象、调用未知方法。 9. **JVM与内存管理** - 垃圾回收机制:自动回收不再使用的对象,...
此外,URL和URLConnection类用于访问和处理网络资源。 8. **反射机制**:反射是Java的一种强大特性,允许程序在运行时检查和操作类、接口、字段和方法。它常用于动态加载类、创建对象、访问私有成员以及实现元编程...
同时,`URL`和`URLConnection`类则用于处理互联网资源的访问。 最后,我们还会涉及异常处理,`java.lang.Throwable`及其子类如`Exception`和`Error`,构成了Java的异常体系,它们帮助我们在程序中捕获和处理错误...
9. **网络编程**:Socket通信、ServerSocket、URL、URLConnection等。 10. **反射与注解**:反射机制的使用、注解的定义与元注解。 11. **JVM内存模型**:堆内存、栈内存、方法区、本地方法栈、垃圾收集机制。 12...
2. URL和URLConnection:学习从网络获取数据,包括HTTP请求的发送和响应的处理。 八、反射 1. 类加载:理解类加载过程,以及Class类的使用。 2. 动态类型:通过反射实现动态调用方法和访问字段。 九、JVM 1. 类...
- **URL与URLConnection**:访问网络资源,获取网页内容。 8. **小程序开发** - **JAVAFX**:用于构建桌面应用,提供丰富的UI组件和动画效果。 - **Android Studio**:开发Android小程序,包括XML布局、Activity...
7. **网络编程**:Java提供了Socket和ServerSocket类,用于实现客户端-服务器通信,同时还有URL和URLConnection类用于访问网络资源。 8. **反射机制**:允许在运行时检查类的信息,创建并操作类的对象,增强了程序...
8. **网络编程**:Java提供了丰富的API来处理网络编程,如Socket和ServerSocket类用于创建客户端和服务器端的连接,URL和URLConnection类用于访问网络资源。 9. **反射机制**:Java反射API允许程序在运行时动态获取...
- **URL与URLConnection**:用于获取和连接网络资源。 9. **反射**: - **Class类**:代表运行时的类信息,可以动态获取类的结构并操作。 - **newInstance()** 和 **getDeclaredMethods()** 等方法,用于运行时...
浙江大学翁恺老师的Java视频课程深入浅出地讲解了这一主题,这些笔记旨在帮助我们回顾和巩固Java开发的关键知识。 1. 面向对象编程基础 - 类与对象:Java中的基本单元是类,它是具有属性(字段)和行为(方法)的...
URL和URLConnection用于访问网络资源。 九、反射机制 Java反射机制允许程序在运行时检查类的信息,如类名、方法名、参数类型,并能动态调用方法和访问字段。它在插件系统、序列化、动态代理等领域有广泛应用。 十...
Java提供了丰富的API进行网络编程,如Socket和ServerSocket类用于客户端和服务器通信,URL和URLConnection用于访问网络资源。 【反射】 Java反射机制允许程序在运行时动态地获取类的信息并调用其方法,增强了程序的...
- URL与URLConnection:网络资源的访问与数据交换。 9. **反射机制** - 类加载器:了解类是如何被加载到JVM中的。 - Class类:获取类的信息,动态创建对象,调用方法。 - 构造器、方法和字段的反射操作。 10. ...
- URL与HTTP:如何使用URL和URLConnection类进行HTTP请求。 - NIO(非阻塞I/O):Java提供的高效I/O模型,用于提高网络通信效率。 - 多线程网络编程:利用Thread或Runnable实现并发处理网络请求,提高服务性能。 ...