问题描述
这是login.jsp页面代码:<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@pageimport="java.sql.*"%><%request.setCharacterEncoding("utf-8");StringNo="";StringName="";StringLesson="";StringMsg="";if(request.getParameter("Name")!=null){No=request.getParameter("No");Name=request.getParameter("Name");Lesson=request.getParameter("Lesson");StringSQL="SELECT*From成绩单";SQL=SQL+"Where学号="+"'"+No+"'"+"And姓名="+"'"+Name+"'";Connectionconn=null;Statementstmt=null;ResultSetrsScore=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptionce){out.println(ce.getMessage());}try{conn=DriverManager.getConnection("jdbc:odbc:test");stmt=conn.createStatement();rsScore=stmt.executeQuery(SQL);}catch(SQLExceptione){System.out.println(e.getMessage());}if(!rsScore.next()){Msg="你不是合法考生";}else{if(rsScore.getInt(Lesson)!=-1){Msg="你已经考过本科目了";}else{response.sendRedirect("test.jsp?Lesson="+Lesson+"&Name="+Name+"&No="+No);}}}%><HTML><metaHTTP-EQUIV="Content-type"content="text/html;charset=gb2312"><BODYBGCOLOR="BEIGE"><H1ALIGN="CENTER">在线考试系统</H1><HR><FORMACTION="login.jsp"METHOD="post"><P>考试科目:<SELECTNAME="Lesson"SIZE="1"><OPTIONVALUE="JSP">JSP</OPTION><OPTIONVALUE="XML">XML</OPTION></SELECT></P><P>姓名:<INPUTTYPE="TEXT"NAME="Name"VALUE="<%=Name%>"></P><P>学号:<INPUTTYPE="TEXT"NAME="No"VALUE="<%=No%>"></P><P><INPUTTYPE="SUBMIT"NAME="SEND"VALUE="开始考试"></P></FORM><HR><FONTColor="red"><%=Msg%></FONT></BODY></HTML>它会提交到test.jsp代码如下:<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@pageimport="java.sql.*"%><%request.setCharacterEncoding("utf-8");StringNo="";StringName="";StringLesson="";StringMsg="";if(request.getParameter("Name")!=null){No=request.getParameter("No");Name=request.getParameter("Name");Lesson=request.getParameter("Lesson");StringSQL="SELECT*From成绩单";SQL=SQL+"Where学号="+"'"+No+"'"+"And姓名="+"'"+Name+"'";Connectionconn=null;Statementstmt=null;ResultSetrsScore=null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundExceptionce){out.println(ce.getMessage());}try{conn=DriverManager.getConnection("jdbc:odbc:test");stmt=conn.createStatement();rsScore=stmt.executeQuery(SQL);}catch(SQLExceptione){System.out.println(e.getMessage());}if(!rsScore.next()){Msg="你不是合法考生";}else{if(rsScore.getInt(Lesson)!=-1){Msg="你已经考过本科目了";}else{response.sendRedirect("test.jsp?Lesson="+Lesson+"&Name="+Name+"&No="+No);}}}%><HTML><metaHTTP-EQUIV="Content-type"content="text/html;charset=gb2312"><BODYBGCOLOR="BEIGE"><H1ALIGN="CENTER">在线考试系统</H1><HR><FORMACTION="login.jsp"METHOD="post"><P>考试科目:<SELECTNAME="Lesson"SIZE="1"><OPTIONVALUE="JSP">JSP</OPTION><OPTIONVALUE="XML">XML</OPTION></SELECT></P><P>姓名:<INPUTTYPE="TEXT"NAME="Name"VALUE="<%=Name%>"></P><P>学号:<INPUTTYPE="TEXT"NAME="No"VALUE="<%=No%>"></P><P><INPUTTYPE="SUBMIT"NAME="SEND"VALUE="开始考试"></P></FORM><HR><FONTColor="red"><%=Msg%></FONT></BODY></HTML>
解决方案
解决方案二:
不要以为你声明了编码是utf-8他就是了,还要保证你的文本编辑器也是utf-8。比如,你的文本编辑器是2312,但是你提交的却是utf-8,会如何?
解决方案三:
试试换为GBK或者gb2312