javaweb控制台打印前端获取控件的值乱码问题

后台

public class MainServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求参数 cmd
        String cmd = req.getParameter("cmd");
        System.out.println("获取到的cmd参数为: " + cmd);
        //调用 cmd方法
        if (cmd.equals("select")) {
            this.select(req, resp);
        }

    }
    public void select(HttpServletRequest request,HttpServletResponse response){
    	try {
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("UTF-8");
            System.out.println("我是:select");
            String interest = (String)request.getParameter("interest");
            String search = request.getParameter("search");
            String search1 = request.getParameter("search1");
            System.out.println("interest为:"+interest);
            System.out.println("search为::"+search);
            System.out.println("search1为::"+search1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

前端

<form action="${pageContext.request.contextPath}/main.do?cmd=select" method="post">
    <div class="layui-form-item layui-form" style="text-align: center;padding-top: 10px;padding-bottom: 10px">
        <div class="layui-inline">
            <label class="layui-form-label">图书类别</label>
            <div class="layui-input-inline">
                <select name="interest">
                    <c:forEach items="${type}" var="t">
                        <option value="${t}">${t}</option>
                    </c:forEach>
                    <%--需要用到for循环来获取类别--%>
                </select>
            </div>
            <label class="layui-form-label">书名</label>
            <div class="layui-input-inline">
                <input class="layui-input" name="search" type="text" placeholder="书名搜索">
            </div>
            <label class="layui-form-label">作者</label>
            <div class="layui-input-inline">
                <input class="layui-input" name="search1" type="text" placeholder="搜索作者">
            </div>
            <button class="layui-btn layui-btn-primary layui-border-blue">查询</button>
        </div>
    </div>
</form>

结果
在这里插入图片描述
在这里插入图片描述

事情是这样的,获取的search、search1和interest都是?????
最后发现不能在单独的方法里面设置编码格式需要写在dopos()方法中。

后台

public class MainServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
   		resp.setContentType("text/html;charset=utf-8");
        req.setCharacterEncoding("utf-8");
        //获取请求参数 cmd
        String cmd = req.getParameter("cmd");
        System.out.println("获取到的cmd参数为: " + cmd);
        //调用 cmd方法
        if (cmd.equals("select")) {
            this.select(req, resp);
        }

    }
    public void select(HttpServletRequest request,HttpServletResponse response){
    	try {
            System.out.println("我是:select");
            String interest = (String)request.getParameter("interest");
            String search = request.getParameter("search");
            String search1 = request.getParameter("search1");
            System.out.println("interest为:"+interest);
            System.out.println("search为::"+search);
            System.out.println("search1为::"+search1);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

前端

<form action="${pageContext.request.contextPath}/main.do?cmd=select" method="post">
    <div class="layui-form-item layui-form" style="text-align: center;padding-top: 10px;padding-bottom: 10px">
        <div class="layui-inline">
            <label class="layui-form-label">图书类别</label>
            <div class="layui-input-inline">
                <select name="interest">
                    <c:forEach items="${type}" var="t">
                        <option value="${t}">${t}</option>
                    </c:forEach>
                    <%--需要用到for循环来获取类别--%>
                </select>
            </div>
            <label class="layui-form-label">书名</label>
            <div class="layui-input-inline">
                <input class="layui-input" name="search" type="text" placeholder="书名搜索">
            </div>
            <label class="layui-form-label">作者</label>
            <div class="layui-input-inline">
                <input class="layui-input" name="search1" type="text" placeholder="搜索作者">
            </div>
            <button class="layui-btn layui-btn-primary layui-border-blue">查询</button>
        </div>
    </div>
</form>

结果
在这里插入图片描述
在这里插入图片描述

控制台打印正常了。都晕了。希望能帮到别人避坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值