jsp用get方法传递多个参数给servlet时报错

信息: Error parsing HTTP request header
Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:189)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1000)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)

源码:

 Connection conn = ConDB.getConnection();
                                    int pageSize;   //一页显示的记录数
                                    int totalSize;   //记录总数
                                    int totalPage;  //总页数
                                    int currentPage;       //待显示页码
                                    String strPage;
                                    String lastcontent = null;
                                    String lasttitle = null;
                                    int i,id;
                                    pageSize=10; //设置一页显示的记录数
                                    strPage=request.getParameter("page"); //取得待显示页码
                                    if(strPage==null){
                                      currentPage=1;
                                    }else{
                                      currentPage=Integer.parseInt(strPage); //将字符串转换成整型
                                    }
                                    String publisher = session.getAttribute("User").toString();
                                    String name ="";
                                    ResultSet rese = ConDB.selectIf(Const.TABLE_USER,"用户名",publisher);
                                    while(rese.next()){
                                        name = rese.getString("姓名");
                                    }
                                    ResultSet rs = ConDB.selectIf(Const.TABLE_MESSAGE,"收信人",name); 
                                    rs.last(); //光标指向查询结果集中最后一条记录 
                                    totalSize=rs.getRow(); //获取记录总数
                                    totalPage=(totalSize+pageSize-1)/pageSize; //记算总页数

                                    if(totalPage>0){
                                       rs.absolute((currentPage-1)*pageSize+1);//将记录指针定位到待显示页的第一条记录上             
                                       i=0;
                                       id=(currentPage-1)*pageSize+1;
                                       String mNum;
                                       String sendPerson;
                                       String content;
                                       String time;
                                       String publishTime;
                                       while(i<pageSize && !rs.isAfterLast()){
                                         mNum=rs.getString("编号");
                                         sendPerson=rs.getString("发信人");
                                         content=rs.getString("内容");
                                         time=rs.getString("时间");
                                       %>
                                          <tbody>
                                           <tr>
                                            <td ><%=mNum%></td>
                                            <td ><%=sendPerson%></td>
                                            <td ><%=content%></td>
                                            <td ><%=time%></td>
                                            <td><a href="CheckFileType?mNum=<%=mNum%>&user=<%=name%>">回复</a></td>
                                        </tr>

                                                                                    点击回复后报上述错误

https://zhidao.baidu.com/question/560455978580486684.html

相同问题参考:http://blog.csdn.net/yhq1913/article/details/53406275

是这个问题
The valid characters are defined in RFC 7230 and RFC 3986

问题已经解决了 是因为jsp设置了编码格式为UTF-8 但是Tomcat的默认编码格式是GB2312 在tomcat下的server.xm中设置默认编码
URIEncoding="UTF-8" 然后在get传参时将参数转为UTF-8
&user=<%=java.net.URLEncoder.encode(String.valueOf(serName),"UTF-8")%>">提醒
即可