出现这个问题其实写接口的同事的疏忽,没有将接口请求中的 Content-Type 设置正确。一般而言客户端需要接口返回JSON数据,下面的两种设置会出现不同的结果
这个类型,接口返回的数据中就会把特殊字符转义成HTML的形式
& 转义成 &amp
页面获取参数的时候会将 ampchannel 当成参数名,从而导致无法获取正确的值
这才是正确的设置,页面拿参数就不会出错了
刚发现的时候一直在查数据源...
多点web的知识还是有好处的...
java发一个http请求过去,带上参数就可以了啊,跟我们在浏览器上访问资源是一样的 只是它返回的是json格式的数据而已给你两个方法吧:public static String do_post(String url, List<NameValuePair>name_value_pair) throws IOException { String body = "{}"DefaultHttpClient httpclient = new DefaultHttpClient()try { HttpPost httpost = new HttpPost(url)httpost.setEntity(new UrlEncodedFormEntity(name_value_pair, StandardCharsets.UTF_8))HttpResponse response = httpclient.execute(httpost)HttpEntity entity = response.getEntity()body = EntityUtils.toString(entity)} finally { httpclient.getConnectionManager().shutdown()} return body} public static String do_get(String url) throws ClientProtocolException, IOException { String body = "{}"DefaultHttpClient httpclient = new DefaultHttpClient()try { HttpGet httpget = new HttpGet(url)HttpResponse response = httpclient.execute(httpget)HttpEntity ent发处篡肺诂镀磋僧单吉ity = response.getEntity()body = EntityUtils.toString(entity)} finally { httpclient.getConnectionManager().shutdown()} return body}
HTML是无法读取数据库的,HTML是页面前端脚本语言,要想从HTML网页中获取SQL数据库里的数据,需要借助JSP或ASP或PHP或RUBY等语言来实现。简单的关系可以这样理解:
数据库<--->JSP或ASP或PHP或RUBY等语言<--->HTML
如:在JSP页面中显示完整代码如下:
<%@ page
language="java"
contentType="text/htmlcharset=UTF-8"
pageEncoding="UTF-8"
%>
<%@page import="java.sql.*"%>
<center>
<H1><font color="blue" size="12">管理中心</font></H1>
<HR />
<table width="80%" border="1">
<tr>
<th>ID</th>
<th>书名</th>
<th>作者</th>
<th>价格</th>
<th>删除</th>
</tr>
<%
// 数据库的名字
String dbName = "zap"
// 登录数据库的用户名
String username = "sa"
// 登录数据库的密码
String password = "123"
// 数据库的IP地址,本机可以用 localhost 或者 127.0.0.1
String host = "127.0.0.1"
// 数据库的端口,一般不会修改,默认为1433
int port = 1433
String connectionUrl = "jdbc:sqlserver://" + host + ":" + port + "databaseName=" + dbName + "user=" + username
+ "password=" + password
//
//声明需要使用的资源
// 数据库连接,记得用完了一定要关闭
Connection con = null
// Statement 记得用完了一定要关闭
Statement stmt = null
// 结果集,记得用完了一定要关闭
ResultSet rs = null
try {
// 注册驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver")
// 获得一个数据库连接
con = DriverManager.getConnection(connectionUrl)
String SQL = "SELECT * from note"
// 创建查询
stmt = con.createStatement()
// 执行查询,拿到结果集
rs = stmt.executeQuery(SQL)
while (rs.next()) {
%>
<tr>
<td>
<%=rs.getInt(1)%>
</td>
<td>
<a href="prepareupdate?ID=<%=rs.getInt("ID")%>" target="_blank"><%=rs.getString(2)%></a>
</td>
<td>
<%=rs.getString(3)%>
</td>
<td>
<%=rs.getString(4)%>
</td>
<td>
<a href="delete?ID=<%=rs.getInt("ID")%>" target="_blank">删除</a>
</td>
</tr>
<%
}
} catch (Exception e) {
// 捕获并显示异常
e.printStackTrace()
} finally {
// 关闭我们使用过的资源
if (rs != null)
try {
rs.close()
} catch (Exception e) {}
if (stmt != null)
try {
stmt.close()
} catch (Exception e) {}
if (con != null)
try {
con.close()
} catch (Exception e) {}
}
%>
</table>
<a href="insert.jsp">添加新纪录</a>
</center>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)