filter获取不到表单post过来的数据,求大神指教

毕竟我很菜 2016-12-06 02:19:45
求大神指教,感激不尽。。。
两种获取方式都试了,获取的值一直是null
package com.ssm.blog.filter;

import java.io.IOException;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyFilter implements Filter{
private FilterConfig config ;

public void destroy() {
System.out.println("======destory=======");
this.config = null ;
}

public void doFilter(ServletRequest request, ServletResponse reponse,
FilterChain filterChain) throws IOException, ServletException {

System.out.println("========doFilter=========");
HttpServletRequest req = (HttpServletRequest)request ;
HttpServletResponse rep = (HttpServletResponse)reponse ;
System.out.println("Filter已经截获到用户的请求的地址: " + req.getServletPath());
String strFrom = req.getServletPath() ;
if(strFrom.indexOf("save.action")!=-1){
System.out.println(req.getParameter("strContent"));
System.out.println("strContent:"+req.getAttribute("strContent"));

}else{
filterChain.doFilter(request, reponse);
}
}

public void init(FilterConfig config) throws ServletException {
System.out.println("=======init=======");
this.config = config ;
}

}


<form action="${pageContext.request.contextPath }/article/save.action" method="post" id="myform" name="myform" enctype="multipart/form-data">
<input type="hidden" name="strId" value="<%=strId %>">
<input type="hidden" name="strType" value="0">
<input type="hidden" name="strHasPic" id="strHasPic" value="0">
<input type="hidden" name="strPublishId" value="<%=userSession.getStrId() %>"/>
<input type="hidden" name="strPublishName" value="<%=userSession.getStrUserName() %>"/>
<table class="insert-tab" width="100%">
<tbody>
<tr>
<th width="120"><i class="require-red">*</i>分类:</th>
<td>
<select name="strKind" id="strKind" class="required">
<c:forEach items="${columnList}" var="column">
<option value="${column.strId }">${column.strColumnName }</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<th><i class="require-red">*</i>标题:</th>
<td>
<input class="common-text required" id="strTitle" name="strTitle" size="50" value="" type="text">
</td>
</tr>
<tr>
<th>作者:</th>
<td><%=userSession.getStrUserName() %></td>
</tr>
<tr>
<th>内容:</th>
<td><textarea name="strContent" class="common-textarea" id="strContent" cols="30" style="width: 98%;" rows="10"></textarea></td>
</tr>
<tr>
<th>关键词:</th>
<td><input class="common-text" id="strKeyWords" name="strKeyWords" size="50" value="" type="text"></td>
</tr>
<tr>
<th></th>
<td>
<input class="btn btn-primary btn6 mr10" value="提交" type="button" onclick="save();">
<input class="btn btn6" onclick="history.go(-1)" value="返回" type="button">
</td>
</tr>
</tbody></table>
</form>
...全文
755 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tingyingg 2016-12-07
  • 打赏
  • 举报
回复
证明了我的猜测: 表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据,进行下面的操作. enctype="multipart/form-data"是上传二进制数据; form里面的input的值以2进制的方式传过去。 form里面的input的值以2进制的方式传过去,所以request就得不到值了。
tingyingg 2016-12-07
  • 打赏
  • 举报
回复
还有你这个 enctype="multipart/form-data" 可能有问题,这个类型好像是用于传送文件的,把这个去掉试试。good luck.
tingyingg 2016-12-07
  • 打赏
  • 举报
回复
<input class="btn btn-primary btn6 mr10" value="提交" type="button" onclick="save();">                                     <input class="btn btn6" onclick="history.go(-1)" value="返回" type="button">                                 </td> 从这句看,你是通过JS代码提交的吧? js里面添加参数了吗? 或者把 <input class="btn btn-primary btn6 mr10" value="提交" type="button" onclick="save();"> 修改成 <input class="btn btn-primary btn6 mr10" value="提交" type="submit" > 然后再试试,代码没什么问题
毕竟我很菜 2016-12-07
  • 打赏
  • 举报
回复
引用 3 楼 tingyingg 的回复:
还有你这个 enctype="multipart/form-data" 可能有问题,这个类型好像是用于传送文件的,把这个去掉试试。good luck.
正解
毕竟我很菜 2016-12-07
  • 打赏
  • 举报
回复
引用 1 楼 zhouixi 的回复:
10分破你的处
就这么点分了。。。技术区发帖都发不了,只有跑这来发帖。。。
zhouixi 2016-12-06
  • 打赏
  • 举报
回复
10分破你的处

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧