2 luochunlin855520 luochunlin855520 于 2017.09.07 18:09 提问

JSP菜鸟一枚,请教如何实现在JSP页面点击button 按钮提交POST请求,并获取返回值 10C

JSP菜鸟一枚,请教如何实现在JSP页面点击button 按钮提交POST请求,并获取返回值,问题很困扰。
因为之前不太了解框架和技术,之前用过ajax、jquery,请求成功,但是返回值取不出来,因为跨域请求安全问题。准备用servlet,但是servlet需要在服务端做修改,显然不适合,我是接口调用。请问大家有什么好的方法,实现JSP页面按钮提交求情获取返回值,最好能给一段代码示例。

Index.jsp
<%@ page language="java" import="java.util.*" %>
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
<%@ page import="WEB_API.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">









<%
WEB_API wa=new WEB_API();
String res=wa.sendPost("17761280053", "验证码是123");
System.out.println(res);
%>

<br> function dianji(){<br> $.post(&quot;<a href="http://eucpwx.mb345.com:443/AppApi/User/GetUserList?UserID=SU0126&amp;GetType=1&amp;NowID=&amp;GetNum=1&amp;Other=&amp;SearchUserName=">http://eucpwx.mb345.com:443/AppApi/User/GetUserList?UserID=SU0126&amp;GetType=1&amp;NowID=&amp;GetNum=1&amp;Other=&amp;SearchUserName=</a>&quot;, function(data){<br> alert(&quot;Data Loaded: &quot; + data);<br> });<br> }<br><br>

中文显示示例




WEB_API.java

package WEB_API;

import java.awt.EventQueue;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import javax.swing.*;
import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.PreparedStatement;
import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.sql.Types;
import java.io.BufferedReader;

import java.io.File;

import java.io.FileOutputStream;

import java.io.FileReader;

import java.io.RandomAccessFile;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.fastjson.JSON.*;

public class WEB_API{

private static Connection con = null;  

public static void main(String[] args) {  
}  

public WEB_API(){  
}

public static String sendPost(String url, String param) {
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    String strUrl="http://eucpwx.mb345.com:443/AppApi/User/GetUserList?";
    String strparam = "UserID=SU0126&GetType=1&NowID=&GetNum=1&Other=&SearchUserName="; 
    try {
        URL realUrl = new URL(strUrl);
        URLConnection conn = realUrl.openConnection();
        conn.setRequestProperty("accept", "*/*");
        conn.setRequestProperty("connection", "Keep-Alive");
        conn.setRequestProperty("user-agent",
                "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
        conn.setDoOutput(true);
        conn.setDoInput(true);
        out = new PrintWriter(conn.getOutputStream());
        out.print(strparam);
        out.flush();
        in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
        String line;
        while ((line = in.readLine()) != null) {
            result += line;
        }

    } catch (Exception e) {
         System.out.println("发送POST请求出现异常!" + e);
         e.printStackTrace();
    }

    finally {
        try {
            if (out != null) {
                out.close();
            }
            if (in != null) {
                in.close();
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    return result;
}

}

火狐浏览器显示:
图片说明

3个回答

lkhog
lkhog   2017.09.07 22:18

ajax不行?就

标签了。属性设置post就行,按钮submit
lkhog
lkhog 回复luochunlin855520: 设置一个隐藏的input 去接返回值呀。EL表达式
2 个月之前 回复
luochunlin855520
luochunlin855520 怎么取返回值呢?因为接口有String 字符串返回。
2 个月之前 回复
lkhog
lkhog form标签。。。。。。。
3 个月之前 回复
zhwyj1019
zhwyj1019   2017.09.07 23:26
 <script>
        $(function () {
            $("#btn").click(function () {

                $("form1").submit();
            });
        });
    </script>


    <form method="post" action="#" id="form1">

            <input id="btn" type="button" value="点我"/>
    </form>

应该是post提交,但是不知道是不是你想要的。

zhwyj1019
zhwyj1019 回复luochunlin855520: 可以设置一下input的value属性
2 个月之前 回复
zhwyj1019
zhwyj1019 回复luochunlin855520: 你要取什么返回值?servlet中带到JSP中的?
2 个月之前 回复
luochunlin855520
luochunlin855520 怎么取返回值呢?
2 个月之前 回复
weixin_38613670
weixin_38613670   2017.09.08 17:58

你那个ajax请求的话,有回调函数的啊

Csdn user default icon
上传中...
上传图片
插入图片