关于servlet的dopost,怎么返回数据给客户端?

关于servlet的dopost,怎么返回数据给客户端?,第1张

//首先要建立一个servlet继承HttpServlet

//doPost 是对post请求的处理方式

public void doPost(HttpServletRequest request, HttpServletResponse response)

//doGet对应get请求

public void doGet(HttpServletRequest request, HttpServletResponse response)

//通过下面的方式把需要的内容发送到客户端

PrintWriter out = response.getWriter()

out.println("返回的内容")

已发送,自己慢慢研究,总体来说思路比较简单,由页面发出一个查询的request请求到Servlet并提交部分参数,Servlet接到请求后先调用易封装好了的方法,链接至数据库,在调用已经封装好了的类,带入参数进行查询,查询完成后将Result封装到List对象,再通过转发将封装好了的list对象发送到你要显示数据的页面,然后用EL表达式得到并显示出数据就可以了

你要写的代码

ObjectVO.java封装的数据对象

DBConnection.java

连接数据库并返回Connection

GetResult.java接收Connection并得到得到JSP的参数后完成查询并返回结果集

SERVLET接收JSP的参数,将接收的参数带入GetResult.java查询,并将查询后的结果集封装到LIST对象并通过转发发送到显示结果的JSP页面。

JSP页面两个,一个用于传递接收并传递参数,一个用于显示结果(可用一个JSP完成)

Android客户端直接连接远程MySQL数据库的方法如下:

String result = ""

//首先使用NameValuePair封装将要查询的年数和关键字绑定

ArrayList<NameValuePair>nameValuePairs = new ArrayList<NameValuePair>()

nameValuePairs.add(new BasicNameValuePair("year","1980"))

//使用HttpPost封装整个SQL语句

//使用HttpClient发送HttpPost对象

try{

HttpClient httpclient = new DefaultHttpClient()

HttpPost httppost = new HttpPost("http://example.com/getAllPeopleBornAfter.php")

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs))

HttpResponse response = httpclient.execute(httppost)

HttpEntity entity = response.getEntity()

InputStream is = entity.getContent()

}catch(Exception e){

Log.e("log_tag", "Error in http connection "+e.toString())

}

//将HttpEntity转化为String

try{

BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8)

StringBuilder sb = new StringBuilder()

String line = null

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

sb.append(line + "\n")

}

is.close()

result=sb.toString()

}catch(Exception e){

Log.e("log_tag", "Error converting result "+e.toString())

}

//将String通过JSONArray解析成最终结果

try{

JSONArray jArray = new JSONArray(result)

for(int i=0i<jArray.length()i++){

JSONObject json_data = jArray.getJSONObject(i)

Log.i("log_tag","id: "+json_data.getInt("id")+

", name: "+json_data.getString("name")+

", sex: "+json_data.getInt("sex")+

", birthyear: "+json_data.getInt("birthyear")

)

}

}

}catch(JSONException e){

Log.e("log_tag", "Error parsing data "+e.toString())

}

虽然Android开发中可以直接连接数据库,但是实际中却不建议这么做,应该使用服务器端中转下完成。


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

原文地址:https://54852.com/sjk/10659591.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存