一、生成一個響應請求的處理類ResponseUtils
package com.json;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
public class ResponseUtils {
/**
* 發送文本。使用UTF-8編碼。
*
* @param response
* HttpServletResponse
* @param text
* 發送的字符串
*/
public static void renderText(HttpServletResponse response, String text) {
// render(response, "text/plain;charset=UTF-8", text);
render(response, "application/json;charset=UTF-8", text);
}
public static void renderJson(HttpServletResponse response, String text) {
// System.out.print(text);
// render(response, "text/plain;charset=UTF-8", text);
render(response, "application/json;charset=UTF-8", text);
}
/**
* 發送內容。使用UTF-8編碼。
*
* @param response
* @param contentType
* @param text
*/
public static void render(HttpServletResponse response, String contentType, String text) {
response.setContentType(contentType);
response.setCharacterEncoding("utf-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
System.out.println("test-->"+text);
try {
response.getWriter().write(text);
response.getWriter().flush();
} catch (IOException e) {
e.printStackTrace();
}
//
}
/**
* @Title: outputJson
* @Description: TODO(頁面異步回調返回Json)
*/
public static void outputJson(HttpServletResponse response, Object obj) {
String s = JackJsonUtils.toJson(obj);
// response.setContentType("text/plain;charset=UTF-8");
response.setContentType("application/json;charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
try {
response.getWriter().write(s);
response.getWriter().flush();
} catch (IOException e) {
e.printStackTrace();
}
}
}
二、開發接口代碼使用的是servlet
1、創建一個繼承HttpServlet的BookServlet,右擊新建–選擇servlet
package com.service;
import java.io.IOException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.json.JackJsonUtils;
import com.json.ListObject;
import com.json.ResponseUtils;
import com.json.StatusHouse;
import com.model.BookModel;
import com.yuna.BookServiceImplement;
/**
* Servlet implementation class BookServlet
*/
@WebServlet("/BookServlet")
public class BookServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public BookServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<BookModel> list = new BookServiceImplement().getAllBooks();
System.out.println("list<BookModel> -->" + list);
ListObject listObject = new ListObject();
listObject.setItems(list);
listObject.setStatusObject(StatusHouse.COMMON_STATUS_OK);
System.out.println("listObject -->" + listObject);
String responseText = JackJsonUtils.toJson(listObject);
System.out.println("responseText -->" + responseText);
ResponseUtils.renderJson(response, responseText);
// response.getWriter().append("Served at: ").append(request.getContextPath());//加這句話的話 在返回的數據中會有
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
2、接口實現,新建接口BookService
package com.yuna;
import java.util.List;
import com.model.BookModel;
public interface BookService {
public List<BookModel> getAllBooks();
}
3、實現BookService接口,新建BookServiceImplement類
package com.yuna;
import java.util.List;
import com.database.BookBusiness;
import com.model.BookModel;
public class BookServiceImplement implements BookService {
@Override
public List<BookModel> getAllBooks() {
return BookBusiness.getAllBooks();
}
}
4、我們在首頁,index.jsp中寫一些數據,來測試
<body>
<h1>hello world</h1>
<h2>This is my test page</h2>
<h3>Welcome to my page!</h3>
</body>
至此相關代碼已寫完,下面來測試下
1、先啓動MySQL數據庫
2、右擊項目—Run as —Run on server,看到我們index.jsp設置的相關信息
3、我們調用下我們寫的get請求接口:http://localhost:8080/DynamicWebDemo/BookServlet
會看到查詢的數據信息
三、我們在手機上寫一個請求,調用該接口.
注意:只能在模擬器上運行,你的接口沒有發佈到外網上去,真機調試不了的