小弟现在在做一个学生实践管理系统,遇到了一些问题,特地跑来向各位请教!!!!!!
<%@ page language="java" import="java.util.*,Connection.Yong,java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'StudentListByNumber.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<script src="JavaScript/tools.js" type="text/javascript"></script>
<%
String Stu_Number=request.getParameter("stu_number");
String sql="select * from [Student] where Stu_Number='"+Stu_Number+"'";
Yong yong=new Yong();
ResultSet rs=yong.Query(sql);
%>
<body>
<table>
<tr>
<td width=200>学生姓名</td>
<td width=200>学号</td>
<td width=200>专业</td>
<td width=200>班级</td>
<td colspan="2" width=400 align="center">操作</td>
</tr>
<%
if(rs.next()){
String stu_number=rs.getString(2);
%>
<tr>
<td><%=rs.getString(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getString(4) %></td>
<td><%=rs.getString(5) %></td>
<td align="center"><a href=/SPMS/UserManagement/EditStudent.jsp?id=<%=rs.getString(2)%>>修改信息</a></td>
<td align="center" onclick="javascript:DeleteStudent()"><input type="button" value="删除"/></td></tr>
<%}
else{
out.print("<script>alert('该学号不存在,请重新输入');window.window.location.href='/SPMS/UserManagement/SearchStudentByNumber.jsp';</script>");
}
rs.close();
yong.close();
%>
</table>
</body>
</html>
这是一个学生列表的JSP页,我想通过一个JS的confirm函数提交给下一页。JS代码如下:function DeleteStudent(){
var answer = confirm("确定删除该生信息?")
if (answer){
var url = "/SPMS/UserManagement/DeleteStudent.jsp?id=" +stu_number;
url=encodeURI(url);
url=encodeURI(url);
}
else{
} }然后跳到DeleteStudent.jsp页处理信息
<%@ page language="java" import="java.util.*,Connection.Yong,java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>删除学生</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
request.setCharacterEncoding("gb2312");
String Stu_Number=request.getParameter("id");
String sql="delete from [Student] where Stu_Number='"+Stu_Number+"'";
Yong LJ=new Yong();
int a=0;
a=LJ.Update(sql);
if(a==1){
out.print("<script>alert('操作成功');window.window.location.href='';</script>");
}
else{
out.print("<script>alert('操作失败,请重新删除');window.window.location.href='';");
}
LJ.close();
%>
</body>
</html>我用的是MYeclipse8.0
错误代码如下:Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: isHexDigit
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:88)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:412)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:394)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:510)
at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:267)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2453)
at org.apache.catalina.connector.Request.getParameter(Request.java:1040)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at org.apache.jsp.UserManagement.DeleteStudent_jsp._jspService(DeleteStudent_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
请各位指教,谢谢,在线等答案,跪拜!!
<%@ page language="java" import="java.util.*,Connection.Yong,java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'StudentListByNumber.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<script src="JavaScript/tools.js" type="text/javascript"></script>
<%
String Stu_Number=request.getParameter("stu_number");
String sql="select * from [Student] where Stu_Number='"+Stu_Number+"'";
Yong yong=new Yong();
ResultSet rs=yong.Query(sql);
%>
<body>
<table>
<tr>
<td width=200>学生姓名</td>
<td width=200>学号</td>
<td width=200>专业</td>
<td width=200>班级</td>
<td colspan="2" width=400 align="center">操作</td>
</tr>
<%
if(rs.next()){
String stu_number=rs.getString(2);
%>
<tr>
<td><%=rs.getString(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getString(4) %></td>
<td><%=rs.getString(5) %></td>
<td align="center"><a href=/SPMS/UserManagement/EditStudent.jsp?id=<%=rs.getString(2)%>>修改信息</a></td>
<td align="center" onclick="javascript:DeleteStudent()"><input type="button" value="删除"/></td></tr>
<%}
else{
out.print("<script>alert('该学号不存在,请重新输入');window.window.location.href='/SPMS/UserManagement/SearchStudentByNumber.jsp';</script>");
}
rs.close();
yong.close();
%>
</table>
</body>
</html>
这是一个学生列表的JSP页,我想通过一个JS的confirm函数提交给下一页。JS代码如下:function DeleteStudent(){
var answer = confirm("确定删除该生信息?")
if (answer){
var url = "/SPMS/UserManagement/DeleteStudent.jsp?id=" +stu_number;
url=encodeURI(url);
url=encodeURI(url);
}
else{
} }然后跳到DeleteStudent.jsp页处理信息
<%@ page language="java" import="java.util.*,Connection.Yong,java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>删除学生</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head>
<body>
<%
request.setCharacterEncoding("gb2312");
String Stu_Number=request.getParameter("id");
String sql="delete from [Student] where Stu_Number='"+Stu_Number+"'";
Yong LJ=new Yong();
int a=0;
a=LJ.Update(sql);
if(a==1){
out.print("<script>alert('操作成功');window.window.location.href='';</script>");
}
else{
out.print("<script>alert('操作失败,请重新删除');window.window.location.href='';");
}
LJ.close();
%>
</body>
</html>我用的是MYeclipse8.0
错误代码如下:Parameters: Character decoding failed. Parameter skipped.
java.io.CharConversionException: isHexDigit
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:88)
at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:49)
at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:412)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:394)
at org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:510)
at org.apache.tomcat.util.http.Parameters.handleQueryParameters(Parameters.java:267)
at org.apache.catalina.connector.Request.parseParameters(Request.java:2453)
at org.apache.catalina.connector.Request.getParameter(Request.java:1040)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:355)
at org.apache.jsp.UserManagement.DeleteStudent_jsp._jspService(DeleteStudent_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
请各位指教,谢谢,在线等答案,跪拜!!
url=encodeURI(url);
没有中文不需要二次编码
1。 JS函数改成带参数的:
function DeleteStudent(stu_number){
......
}
此外,你写的这个函数里没有跳转到指定删除页的代码,应该加上吧。
2. 删除按钮的代码由原来的<td align="center" onclick="javascript:DeleteStudent()"><input type="button" value="删除"/></td>
改成:
<td align="center"> <input type="button" value="删除" onclick="javascript:DeleteStudent(<%=stu_number%>)"/></td>
以上建议供参考。
<td align="center"> <input type="button" value="删除" onclick="javascript:DeleteStudent('<%=stu_number%>')"/></td>
<%@ page language="java" import="java.util.*,Connection.Yong,java.sql.*" pageEncoding="gb2312"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'StudentListByNumber.jsp' starting page</title></head>
<script src="JavaScript/tools.js" type="text/javascript"></script>
<script type="text/javascript">
function delete(id){
if(confirm("确定删除该生信息?")){
window.location.href="/SPMS/UserManagement/DeleteStudent.jsp?id="+id;
}
}
</script>
<%
String Stu_Number=request.getParameter("stu_number");
String sql="select * from [Student] where Stu_Number='"+Stu_Number+"'";
Yong yong=new Yong();
ResultSet rs=yong.Query(sql);
%>
<body>
<table>
<tr>
<td width=200>学生姓名</td>
<td width=200>学号</td>
<td width=200>专业</td>
<td width=200>班级</td>
<td colspan="2" width=400 align="center">操作</td>
</tr>
<%
if(rs.next()){
String stu_number=rs.getString(2);
%>
<tr>
<td><%=rs.getString(1) %></td>
<td><%=rs.getString(2) %></td>
<td><%=rs.getString(4) %></td>
<td><%=rs.getString(5) %></td>
<td align="center"><a href=/SPMS/UserManagement/EditStudent.jsp?id=<%=rs.getString(2)%>>修改信息</a></td>
<td align="center" onclick="javascript:DeleteStudent()"><a onclick="delete(<%=rs.getString(2)%>)">删除</a></td></tr>
<%}
else{
out.print("<script>alert('该学号不存在,请重新输入');window.window.location.href='/SPMS/UserManagement/SearchStudentByNumber.jsp';</script>");
}
rs.close();
yong.close();
%>
</table>
</body>
</html>
function DeleteStudent(){
var answer = confirm("确定删除该生信息?")
if (answer){
var url = "/SPMS/UserManagement/DeleteStudent.jsp?id=" +stu_number; --->stu_number值从哪里来的?
url=encodeURI(url);
url=encodeURI(url);
}第二:
String Stu_Number=request.getParameter("id");
//在这里应该先判断Stu_Numbe是否为空
if(Stu_Number != null){
String sql="delete from [Student] where Stu_Number='"+Stu_Number+"'";
} else {
out.print(.....)
}