Applet和Servelet通信的问题!!!!!!!Applet给Servelet发送信息(一个字符),Servelet接受到后再给发送回Applet.现在报错如下:java.net.UnknownServiceException: protocol doesn't support output at java.net.URLConnection.getOutputStream(URLConnection.java:679) at applet2.Applet1.jButton1_actionPerformed(Applet1.java:96) at applet2.Applet1_jButton1_actionAdapter.actionPerformed(Applet1.java:117) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1764) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed
(AbstractButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
......................我的Applet程序如下:
URL servletURL;
try {
servletURL = new URL(this.getDocumentBase(),"queryServlet");
URLConnection connection;
connection = servletURL.openConnection();
connection.setUseCaches(false);
connection.setDoOutput(true);
ByteArrayOutputStream byteStream=new ByteArrayOutputStream(1024);
PrintWriter outf=new PrintWriter(byteStream,true);
String postData="NUM"+URLEncoder.encode(jTextField2.getText());
outf.print(postData);
outf.flush();
String lengthString=String.valueOf(byteStream.size());
connection.setRequestProperty("Content-length",lengthString);
connection.setRequestProperty("Content-Type","application/x-www-form-rulencoded");
byteStream.writeTo(connection.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(connection.getInputStream()));
String resultStr=br.readLine();
} catch (IOException q) {
// TODO Auto-generated catch block
q.printStackTrace();
}
Servelet程序如下:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
request.setCharacterEncoding("GBK"); String num= request.getParameter("NUM");
out.println(num);Web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>applet2.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
</web-app>
(AbstractButton.java:1817) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:419) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257)
......................我的Applet程序如下:
URL servletURL;
try {
servletURL = new URL(this.getDocumentBase(),"queryServlet");
URLConnection connection;
connection = servletURL.openConnection();
connection.setUseCaches(false);
connection.setDoOutput(true);
ByteArrayOutputStream byteStream=new ByteArrayOutputStream(1024);
PrintWriter outf=new PrintWriter(byteStream,true);
String postData="NUM"+URLEncoder.encode(jTextField2.getText());
outf.print(postData);
outf.flush();
String lengthString=String.valueOf(byteStream.size());
connection.setRequestProperty("Content-length",lengthString);
connection.setRequestProperty("Content-Type","application/x-www-form-rulencoded");
byteStream.writeTo(connection.getOutputStream());
BufferedReader br=new BufferedReader(new InputStreamReader(connection.getInputStream()));
String resultStr=br.readLine();
} catch (IOException q) {
// TODO Auto-generated catch block
q.printStackTrace();
}
Servelet程序如下:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
request.setCharacterEncoding("GBK"); String num= request.getParameter("NUM");
out.println(num);Web.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>servlet1</servlet-name>
<servlet-class>applet2.Servlet1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servlet1</servlet-name>
<url-pattern>/servlet1</url-pattern>
</servlet-mapping>
</web-app>
解决方案 »
- 关于myeclipse项目上的标志问题。
- 类似用户名存在提示问题
- JSP 连接SQL SERVER2000出错
- 请问哪位大哥有<jsp2.0技术手册>的完整版??
- 有没有最新的JSP教程?网上的都太老了:(
- java.lang.ClassFormatError: Illegal constant pool index
- Eclipse 代码提示功能问题 请大哥们帮帮忙 拜托了
- Struts1中forward路径问题,求解啊~!!!
- java想数据库中导入图片
- JInternalFrame类
- 用eclipse做网页,有没有像VB.NET一样的插件直接拖放按钮到页面上,直接写HTML太麻烦了,能不能推荐一种快的写前台HTML及相关控件代码的
- 升四角,喜庆散分!同时思考Java与dotNet,模式与效率的一些问题
connection.setDoInput(true);
java.net.SocketException: Socket is not connected: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:171)我程序里servletURL = new URL(this.getDocumentBase(),"queryServlet");里的queryServlet应该是servlet1是我没改回来,但问题不在这里。
很想知道 servletURL.toString()打印出来结果
打印结果如下:servletURL = new URL(this.getDocumentBase(),"Servlet1");
System.out.println("url:" + servletURL.toString());
打印结果:
url:file:/C:/Documents and Settings/G/jbproject/Applet3/classes/Servlet1
connection = servletURL.openConnection();
System.out.println(connection.toString());
打印结果:
sun.net.www.protocol.file.FileURLConnection:file:/C:/Documents and Settings/G/jbproject/Applet3/classes/Servlet1报错:
java.net.UnknownServiceException: protocol doesn't support output
换成实际的servlet1所相应请求的url
首先确保 这个servlet能正常运行还有你是这样得到Applet传过去的String num= request.getParameter("NUM");所以还要这样 : http://127.0.0.1:8080/Webmodule1/servlet?NUM=xxxxx
servletURL = new URL("http://127.0.0.1:8080/WebModule1/WEB-INF/classes/Servlet1");
报错如下:java.lang.IllegalStateException: Already connected