java swing http请求,如何调用使用的Apache的HttpClient从Java Swing的登录页面的Servlet?...

I am having the Swing login page contains userName and password and a submit button .

I need to pass the username and password to the LoginAction servlet and I need to get userName and password in the Console through servlet...

My Swing code is ,

package com.tps.SwingChat.login;

import javax.swing.*;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.impl.client.DefaultHttpClient;

import java.awt.*;

import java.awt.event.*;

import java.io.IOException;

class Login extends JFrame implements ActionListener

{

private static final long serialVersionUID = 1L;

JButton SUBMIT;

JPanel panel;

JLabel label1,label2;

final JTextField text1,text2;

Login()

{

label1 = new JLabel();

label1.setText("Username:");

text1 = new JTextField(15);

label2 = new JLabel();

label2.setText("Password:");

text2 = new JPasswordField(15);

SUBMIT=new JButton("SUBMIT");

panel=new JPanel(new GridLayout(3,1));

panel.add(label1);

panel.add(text1);

panel.add(label2);

panel.add(text2);

panel.add(SUBMIT);

add(panel,BorderLayout.CENTER);

SUBMIT.addActionListener(this);

setTitle("LOGIN FORM");

}

public void actionPerformed(ActionEvent ae)

{

String uname=text1.getText();

String pwd=text2.getText();

HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost("http://localhost:8089/SwingChat/LoginAction?uname="+uname+"&pwd="+pwd);

try {

HttpResponse rsp = client.execute(post);

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

class LoginDemo

{

public static void main(String arg[])

{

try

{

Login frame=new Login();

frame.setSize(300,100);

frame.setVisible(true);

}

catch(Exception e)

{JOptionPane.showMessageDialog(null, e.getMessage());}

}

}

And my Servlet is,

public class LoginAction extends HttpServlet {

private static final long serialVersionUID = 1L;

String uname = null;

String pwd = null;

public LoginAction() {

super();

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

uname = request.getParameter("uname");

pwd = request.getParameter("pwd");

System.out.println("UserName : "+uname);

System.out.println("Password : "+pwd);

}

}

Please any help me to find the solution.

If I submit the swing page nothing is happend.I need the userName and password to e in console..

Thanks in advance...

解决方案

Updated your code to pass data to servlet and read response data from server.

public void actionPerformed(ActionEvent ae) {

String uname = text1.getText();

String pwd = text2.getText();

HttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(

"http://localhost:8089/SwingChat/LoginAction?uname=" + uname

+ "&pwd=" + pwd);

try {

// Add your data

List nameValuePairs = new ArrayList(2);

nameValuePairs.add(new BasicNameValuePair("uname", uname));

nameValuePairs.add(new BasicNameValuePair("pwd", pwd));

post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// executing the POST request

HttpResponse rsp = client.execute(post);

// reading response data

HttpEntity entity = rsp.getEntity();

InputStream inputStream = entity.getContent();

String response = convertStreamToString(inputStream);

System.out.println("Response from server : " + response);

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

private static String convertStreamToString(InputStream is) {

BufferedReader reader = new BufferedReader(new InputStreamReader(is));

StringBuilder sb = new StringBuilder();

String line = null;

try {

while ((line = reader.readLine()) != null) {

sb.append(line + "\n");

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

return sb.toString();

}

Please check

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值