很多人应该都知道servlet在post/get传递中文会乱码.我们可以写一个通用的common类.把一些通用功能都加进去.请大家看我的具体的代码实现吧!
先写一个简单的测试类,让它继承 commonservlet类
package com.yc.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.yc.bean.JsonModel;
public class hservlet extends CommonServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//请求 方式 是 什么
String method=request.getMethod();
System.out.println("你请求的是方式"+method);
String uname=request.getParameter("uanme");
//用jsonmodel传递数据
JsonModel im=new JsonModel();
im.setCode(1);
im.setMsg("hello"+uname);
im.setObj(uname);
super.outJson(response,im);
}
}
下面的是通用类
package com.yc.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.yc.bean.JsonModel;
public class CommonServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
response.setCharacterEncoding("gbk");
super.service(request, response);
}
public void outJson(HttpServletResponse response,JsonModel jsonModel) throws IOException{
response.setContentType("text/pain;charset=utf-8");
PrintWriter out=response.getWriter();
Gson g=new Gson();
String s=g.toJson(jsonModel);
out.println(s);
out.flush();
out.close();
}
}
用json时要记得用gson包
还要记得在web.xml中配置servlet