2017浙江高考理综试题:JSP 程序报错!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 02:37:36
望高手赐教!!!

错误提示:

root cause

org.apache.jasper.JasperException: Unable to compile class for JSP

An error occurred at line: 14 in the jsp file: /checklogin.jsp
Generated servlet error:
Type mismatch: cannot convert from Object to String

An error occurred at line: 14 in the jsp file: /checklogin.jsp
Generated servlet error:
Type mismatch: cannot convert from Object to String

An error occurred at line: 14 in the jsp file: /checklogin.jsp
Generated servlet error:
The method getPs(String) is undefined for the type DBAccesser

An error occurred at line: 14 in the jsp file: /checklogin.jsp
Generated servlet error:
username cannot be resolved

源程序:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import ="com.tool.DBAccesser"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<!-- TemplateBeginEditable name="doctitle" -->
<title>无标题文档</title>
<!-- TemplateEndEditable -->
<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
</head>

<body>
<%
DBAccesser dba = new DBAccesser();
String userName = request.getAttribute("userName");
String password = request.getAttribute("password");
PreparedStatement ps = dba.getPs("select * from regUsers where userName = '"+userName+"' and password = '"
+password+"'");
ResultSet rs = ps.executeQuery();
if(rs.next()){
session.setAttribute("user",username);
session.setAttribute("pass",password);

out.println("<script language='javascript'> alert(\"OK\")</script>");
}else{
out.println("<script language='javascript'> alert(\"找不到该用户或密码错误!\")</script>");
}

%>

</body>
</html>

把String userName = request.getAttribute("userName");
String password = request.getAttribute("password");
改成
String userName = (String)request.getAttribute("userName");
String password = (String)request.getAttribute("password");
还提示DBAccesser中的getPs()方法中,没有定义String类型.

PreparedStatement ps = dba.getPs("select * from regUsers where userName = '"+userName+"' and password = '"
+password+"'");
这行的错,看看com.tool.DBAccesser里有没有定义
getPs(String)这个方法.

同意llqqbb_net的观点,request.getAttribute("userName"); 得到的是个对象,要先转化才能赋给String类型.