有A.JSP servlet 和B.jsp,,代码如下,没有报错,但结果不正确。望改正。
A.jsp代码:
<form name="form1" target="frame2" action="AServlet?action=search" method="POST"><table>
<tr><td><select name=selectopt onchange="change()">
<option value=1>请选择</option>
<option value=eno>编号</option>
<option value=ename>名字</option>
<option value=esex>性别</option>
<option value=gz>工作</option>
<option value=ezc>职称</option>
</select></td>
<td><input type="text" name="Submitselect" ></td>
<td colspan="2" align="center"><input type="submit" name="SubmitA" value="SubmitA"></td></tr>
</table>
</form>SERVLET 代码:
if ("search".equalsIgnoreCase(action)) {
String selectopt = request.getParameter("selectopt");
String Submitselect = request.getParameter("Submitselect");
String sql = "select * from zg where " + selectopt + "="
+ Submitselect ;
try {
sqlBean db = new sqlBean();
ResultSet rs = db.executeQuery(sql);
if (rs.next()) {
HttpSession session = request.getSession();
session.setAttribute("eno", rs.getString(1));
session.setAttribute("ename", rs.getString(2));
session.setAttribute("esex", rs.getString(3));
session.setAttribute("gz", rs.getString(4));
session.setAttribute("ezc", rs.getString(5));
response.sendRedirect("B.jsp?eno=" + eno + "&ename="
+ ename + "&ensex=" + esex + "&gz=" + gz + "&ezc="
+ ezc + "&flag=true");
} else { response.sendRedirect("B.jsp?flag=false");
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}B。jsp中代码:
<div style="border: 1px solid;width:300px;height:50px"><table border="0" width="100%">
查询结果:
<% String flag="init";
if(request.getParameter("flag")!=null){flag=request.getParameter("flag");};
out.print(flag);
if(flag.equals("true")){
String eno=(String)request.getParameter("eno");
String ename=(String)request.getParameter("ename");
String esex=(String)request.getParameter("esex");
String gz=(String)request.getParameter("gz");
String ezc=(String)request.getParameter("ezc");%>
<tr><td>eno:${eno} </td><td>ename:${ename}</td></tr>
<tr><td>esex:${esex}</td><td>gz:${gz }</td></tr>
<tr><td>ezc:${ezc}</td></tr>
<% }
else if(flag.equals("false")){out.print("查询失败!");}
else out.print("在这里显示!");%>
</table></div>
A.jsp代码:
<form name="form1" target="frame2" action="AServlet?action=search" method="POST"><table>
<tr><td><select name=selectopt onchange="change()">
<option value=1>请选择</option>
<option value=eno>编号</option>
<option value=ename>名字</option>
<option value=esex>性别</option>
<option value=gz>工作</option>
<option value=ezc>职称</option>
</select></td>
<td><input type="text" name="Submitselect" ></td>
<td colspan="2" align="center"><input type="submit" name="SubmitA" value="SubmitA"></td></tr>
</table>
</form>SERVLET 代码:
if ("search".equalsIgnoreCase(action)) {
String selectopt = request.getParameter("selectopt");
String Submitselect = request.getParameter("Submitselect");
String sql = "select * from zg where " + selectopt + "="
+ Submitselect ;
try {
sqlBean db = new sqlBean();
ResultSet rs = db.executeQuery(sql);
if (rs.next()) {
HttpSession session = request.getSession();
session.setAttribute("eno", rs.getString(1));
session.setAttribute("ename", rs.getString(2));
session.setAttribute("esex", rs.getString(3));
session.setAttribute("gz", rs.getString(4));
session.setAttribute("ezc", rs.getString(5));
response.sendRedirect("B.jsp?eno=" + eno + "&ename="
+ ename + "&ensex=" + esex + "&gz=" + gz + "&ezc="
+ ezc + "&flag=true");
} else { response.sendRedirect("B.jsp?flag=false");
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}B。jsp中代码:
<div style="border: 1px solid;width:300px;height:50px"><table border="0" width="100%">
查询结果:
<% String flag="init";
if(request.getParameter("flag")!=null){flag=request.getParameter("flag");};
out.print(flag);
if(flag.equals("true")){
String eno=(String)request.getParameter("eno");
String ename=(String)request.getParameter("ename");
String esex=(String)request.getParameter("esex");
String gz=(String)request.getParameter("gz");
String ezc=(String)request.getParameter("ezc");%>
<tr><td>eno:${eno} </td><td>ename:${ename}</td></tr>
<tr><td>esex:${esex}</td><td>gz:${gz }</td></tr>
<tr><td>ezc:${ezc}</td></tr>
<% }
else if(flag.equals("false")){out.print("查询失败!");}
else out.print("在这里显示!");%>
</table></div>
直接用session.getAttribute() 取对象就好了
我有疑问:
String selectopt = request.getParameter("selectopt");
String Submitselect = request.getParameter("Submitselect");
String sql = "select * from zg where " + selectopt + "="
+ Submitselect ;
这俩变量是Stirng型的吧 那么你的SQL语句 是否改变呢 我很怀疑你的数据能查询出来么 还有 确保查询得到的数据在你的数据库里面只有一条么 用个if()判断 还有 既然LZ在jsp页面中用到了 EL 建议不要用<%%>了 可以配合JSTL 这样看起就比较规范了 不那么冗余