package com.andieguo.nearby.servlet;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.andieguo.nearby.bean.UserInfo;
import com.andieguo.nearby.message.UserResponse;
import com.andieguo.nearby.service.Service;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class UserServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
StringBuilder sb = new StringBuilder();
BufferedReader br = req.getReader();
String str;
while ((str = br.readLine()) != null) {
sb.append(str);
}
String json = sb.toString();
System.out.println("服务器端收到json数据:"+json);
Gson gson = new Gson();
UserInfo user = gson.fromJson(json, UserInfo.class);
Service service = new Service();
UserResponse j = new UserResponse();
j.setCode("1");
j.setMsg("ok");
try {
service.saveOrUpdateUser(user);
} catch (SQLException e) {
e.printStackTrace();
j.setCode("0");
j.setMsg("error");
}
setSuccess(resp, j);
}
protected String getStringParameter(HttpServletRequest req,
String parameter, String defaultValue) {
String value = req.getParameter(parameter);
if (value == null || value.trim().isEmpty()) {
value = defaultValue;
}
return value.trim();
}
protected void setSuccess(HttpServletResponse resp, Object obj)
throws IOException {
GsonBuilder builder = new GsonBuilder();
// 不转换没有 @Expose 注解的字段
builder.excludeFieldsWithoutExposeAnnotation();
Gson gson = builder.create();
String json = gson.toJson(obj);
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("application/json");
resp.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
out.print(json);
out.flush();
out.close();
}
}