接口返回的数据中出现HTML转义字符

接口返回的数据中出现HTML转义字符,第1张

出现这个问题其实写接口的同事的疏忽,没有将接口请求中的 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>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7027803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-31
下一篇 2023-03-31

发表评论

登录后才能评论

评论列表(0条)

保存