后台
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>
结果
控制台打印正常了。都晕了。希望能帮到别人避坑。