zoukankan      html  css  js  c++  java
  • 关于 jsp java servlet 中文汉字乱码的解决方法

    在servlet类中的get,post最前面加上

    req.setCharacterEncoding("UTF-8");
    resp.setCharacterEncoding("UTF-8");

    对接收到的汉字字符串转码

            String name = req.getParameter("name");
            String deptName = req.getParameter("deptName");
            name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
            deptName = new String(deptName.getBytes("ISO-8859-1"), "UTF-8");

    完整样例:

    package servlet;
    
    import Dao.DeptDao;
    import Dao.EmpDao;
    import entity.Emp;
    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.io.UnsupportedEncodingException;
    
    public class EmpServlet extends HttpServlet{
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String action = req.getParameter("action");
            req.setCharacterEncoding("UTF-8");
            resp.setCharacterEncoding("UTF-8");
            if("listEmp".equals(action)){
                listEmp(req,resp);
            }
        }
    
        private void listEmp(HttpServletRequest req, HttpServletResponse resp){
            JSONArray result = EmpDao.listEmp();
            PrintWriter pw = null;
            try {
                pw = resp.getWriter();
                pw.println(result);
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String action = req.getParameter("action");
            req.setCharacterEncoding("UTF-8");
            resp.setCharacterEncoding("UTF-8");
            if("addEmp".equals(action)){
                try {
                    addEmp(req,resp);
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    
        private void addEmp(HttpServletRequest req, HttpServletResponse resp) throws JSONException, UnsupportedEncodingException {
            String name = req.getParameter("name");
            String deptName = req.getParameter("deptName");
            name = new String(name.getBytes("ISO-8859-1"), "UTF-8");
            deptName = new String(deptName.getBytes("ISO-8859-1"), "UTF-8");
    
            int deptId = DeptDao.reConvert(deptName);
            JSONObject result = EmpDao.addEmp(name,deptId);
            try {
                PrintWriter pw = resp.getWriter();
                pw.println(result);
                pw.flush();
                pw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    
    
  • 相关阅读:
    挑战练习13.8 用于RecyclerView 的空视图
    挑战练习13.7 复数字符串资源
    挑战练习13.6 删除crime 记录
    挑战练习12.3 更多对话框
    20. Valid Parentheses
    挑战练习11.6 添加Jump to First按钮和Jump to Last按钮
    内存 分析
    HOOK64 32转换
    MD5
    HOOk快捷键
  • 原文地址:https://www.cnblogs.com/zhangjiuding/p/8039875.html
Copyright © 2011-2022 走看看