从A页面传递一个参数给B页面. A页面代码 <form name="form1' method="post" action="change_query.jsp?xh1=<%=rs.getObject(1)%>"> 点提交B页面代码: xh=request.getParameter("xh1").trim();这样应该没有问题吧.运行说 xh=request.getParameter("xh1").trim();这句有问题啊? xh1是能够正常获得的,可是赋给xh( xh=request.getParameter("xh1").trim();)这句为什么错呀?
或者可以把trim()去掉试试,有时候把它去掉就可以了,我遇到过,具体原因不明
A页面:<%@page contentType="text/html" pageEncoding="gb2312" language="java"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>修改记录</title>
</head>
<%request.setCharacterEncoding("gb2312");%>
<%response.setContentType("text/html; charset=gb2312");%>
<body>
<%! String xh,name,sex,age,college,url,sql; %>
<% Connection conn;%>
<% ResultSet rs;%>
<% Statement st; %>
<%
xh=request.getParameter("xhh").trim();
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
url="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=xjgl;user=sa;password=321";
conn=java.sql.DriverManager.getConnection(url);
st=conn.createStatement();
sql="select * from student where 学号='"+xh+"'";
rs=st.executeQuery(sql);
while(rs.next())
{
%>
<center>
修改记录
</center>
<form name="form1' method="post" action="change_query.jsp?xh1=<%=rs.getObject(1)%>">
<table width="75%" border="1" cellspacing="1" cellpadding="1" align="center">
<tr>
<td width="16%" align="center">学号</td>
<td width="16%" align="center"><%=rs.getObject(1)%></td> </tr>
<tr>
<td width="16%" align="center">姓名</td>
<td width="16%" align="center"><input type="text" value=<%=rs.getString(2)%> name="name" size=8></td> </tr>
<tr>
<td width="16%" align="center">性别</td>
<td width="16%" align="center">
<%
sex=rs.getString(3).trim();
if(sex.equals("男"))
{
%>
<select name="sex" size="1">
<option value="男" selected>男</option>
<option value="女">女</option>
</select>
<%
}
else{
%>
<select name="sex" size="1">
<option value="男">男</option>
<option value="女" selected>女</option>
</select>
<% } %>
</td> </tr>
<tr>
<td width="16%" align="center">年龄</td>
<td width="16%" align="center"><input type="text" value=<%=rs.getObject(4)%> name="age"></td> </tr>
<tr>
<td width="16%" align="center">籍贯</td>
<td width="16%" align="center"><input type="text" value=<%=rs.getObject(5)%> name="jg"></td> </tr>
<tr>
<td width="16%" align="center">院系</td>
<td width="16%" align="center"><input type="text" value=<%=rs.getObject(6)%> name="college"></td> </tr>
<tr>
<td align="center"><input type="submit" value="提交" name="submit1"> </td>
<td align="center"><input type="reset" value="清空" name="submit1" align="center"> </td>
</tr>
</table>
</form>
<%
}
rs.close();st.close();conn.close();
}
catch (Exception e)
{
out.println(e);
}
%>
</body>
</html>
B:页面
<%@page contentType="text/html" pageEncoding="gb2312" language="java"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JSP Page</title>
<%request.setCharacterEncoding("gb2312");%>
</head>
<body>
<%! String xh,name,sex,age,jg,college,url,sql;%>
<% int i;%>
<% Connection conn;%>
<% ResultSet rs;%>
<% Statement st; %>
<%
xh=request.getParameter("xh1").trim(); name=request.getParameter("name").trim();
name=new String(name.getBytes("ISO-8859-1"));
sex=request.getParameter("sex").trim();
sex=new String(sex.getBytes("ISO-8859-1"));
age=request.getParameter("age").trim();
i=Integer.parseInt(age);
jg=request.getParameter("jg").trim();
jg=new String(jg.getBytes("ISO-8859-1"));
college=request.getParameter("college");
college=new String(college.getBytes("ISO-8859-1"));
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
url="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=xjgl;user=sa;password=321";
conn=java.sql.DriverManager.getConnection(url);
st=conn.createStatement();
sql="select * from student where 学号='"+xh+"'";
rs=st.executeQuery(sql);
if(rs.getRow()>0)
{
out.print("这个学号的同学已经存在!");
return;
}
sql="update student set 姓名='"+name+"',性别='"+sex+"',年龄='"+i+"',籍贯='"+jg+"',院系='"+college+"' where 学号='"+xh+"'";
st.executeUpdate(sql);
out.println("正在修改信息,请守侯<meta http-equiv='refresh' content='2;url=list.jsp'>");
rs.close();st.close();conn.close();
}
catch(Exception e)
{
out.println(e);
}
%>
</body>
</html>
页面错误提示:
HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /web/change_query.jsp at line 2017: <% ResultSet rs;%>
18: <% Statement st; %>
19: <%
20: xh=((String)request.getParameter("xh1")).trim();
21: name=request.getParameter("name").trim();
22: name=new String(name.getBytes("ISO-8859-1"));
23: sex=request.getParameter("sex").trim();
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
xh.trim()