在编写jsp时用到了javabean得一个类老是有如下异常,跪求高手指教!
jsp文件:
<%--
Document : login
Created on : 2011-11-21, 23:51:07
Author : Administrator
--%><%@page contentType="text/html" pageEncoding="gbk"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>JSP Page</title>
<%
request.setCharacterEncoding("gbk");
String s1 = request.getParameter("user");
String p1 = request.getParameter("passWord");
if (s1.length() != 11 || p1.length() != 6) {//验证用户名和密码格式
%>
<script>
alert("用户名或密码错误 !");
history.go(-1);
</script>
<% } else {
%>
</head>
<body>
<jsp:useBean id="use" class="javabean.User" scope="session"/><%--以用户创建user类--%>
<jsp:setProperty name="use" property="*"/><%--把得到的用户名和密码传入user类--%>
<%
if (use.userIsExist()) {//判断用户名在数据库中用户表中是否存在
if (use.passWordIsExist()) {//判断密码是否正确
use.Close();
%>
<jsp:useBean id="stu" class="javabean.Student" scope="session"/><%--创建student类--%>
<jsp:useBean id="teacher" class="javabean.Teacher" scope="session"/>
<%
if (stu.IsExist(use.getUser())) {//判断用户是否是学生
stu.Close();
use.Close();
teacher.CloseConnecting();
%>
<jsp:forward page="student.jsp"/>
<% } else if (teacher.IsExist(use.getUser())) {
stu.Close();
use.Close();
%>
<jsp:forward page = "teacher.jsp"/>
<% }
} else {
%>
<script>
alert("密码不正确!");
history.go(-1);
</script>
<% }
} else {
%>
<script>
alert("用户名不存在,请注册 !");
history.go(-1);
</script>
<% }
}
%>
</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: java.lang.ClassCastException: java.lang.String cannot be cast to javabean.Teacher
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause java.lang.ClassCastException: java.lang.String cannot be cast to javabean.Teacher
org.apache.jsp.login_jsp._jspService(login_jsp.java:113)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
。
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.14 logs.
javabean代码如下
package javabean;import java.sql.*;public class Teacher extends User { private String[] snumber;
private String[] sname;
private String[] ssex;
private String[] sGrade;
private String[] department;
private String[] major;
private String url = "jdbc:sqlserver://localhost:1433;databaseName=学生成绩管理系统;user=sa;password=sqlserver;";
private Connection dbcon;
private Statement stmt;
private ResultSet rs;
private String databaseServerDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; public Teacher() {
stmt = null;
rs = null;
this.dbcon = super.dbcon;// 连接数据库
} public Teacher(String url, String databaseServerDriver) {
super();
this.url = url;
this.databaseServerDriver = databaseServerDriver;
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
} catch (SQLException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} catch (ClassNotFoundException ex) {
// 打印出异常信息
System.out.println(ex.toString());
}
}
}
public boolean IsExist(String number) { String sql = "select * from 教师表 where 职工号='" + number+"'";
try {
rs = null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery(sql); if (rs.next()) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} }
}
package javabean;import com.microsoft.sqlserver.jdbc.SQLServerException;
import java.sql.*;
/**
* 实现对用户表的操作
* **/
public class User { private String url = "jdbc:sqlserver://localhost:1433;databaseName=学生成绩管理系统;user=sa;password=sqlserver;";
protected Connection dbcon;
private Statement stmt;
private ResultSet rs;
private String databaseServerDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String user;
private String passWord;
public User() {
// 初始化参数
stmt = null;
rs = null;
// 连接数据库
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
} catch (SQLException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} catch (ClassNotFoundException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} } // 构造一个连接,用给定的url和服务器驱动
public User(String url, String databaseServerDriver) {
super();
this.url = url;
this.databaseServerDriver = databaseServerDriver;
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
} catch (SQLException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} catch (ClassNotFoundException ex) {
// 打印出异常信息
System.out.println(ex.toString());
}
} /**
* @对数据库执行sql执行语句,主要是插入和更新操作,返回一个布尔值变量
*/
public boolean userIsExist(String user) { String sql = "select * from 用户表 where 用户号='" + user+"'" ;
try {
rs = null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery(sql);
rs.next();
String s = rs.getString(1);
if (s.equals(user)) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} } public boolean userIsExist() { String sql = "select * from 用户表 where 用户号='" + user + "'";
try {
rs = null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery(sql);
if ( rs.next()) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} } public boolean passWordIsExist() {
try{
rs=null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery("select * from 用户表 where 密码='"+passWord+"' and 用户号='"+user+"'");
rs.next();
int row = rs.getRow();
if (row != 0) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}
jsp文件:
<%--
Document : login
Created on : 2011-11-21, 23:51:07
Author : Administrator
--%><%@page contentType="text/html" pageEncoding="gbk"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>JSP Page</title>
<%
request.setCharacterEncoding("gbk");
String s1 = request.getParameter("user");
String p1 = request.getParameter("passWord");
if (s1.length() != 11 || p1.length() != 6) {//验证用户名和密码格式
%>
<script>
alert("用户名或密码错误 !");
history.go(-1);
</script>
<% } else {
%>
</head>
<body>
<jsp:useBean id="use" class="javabean.User" scope="session"/><%--以用户创建user类--%>
<jsp:setProperty name="use" property="*"/><%--把得到的用户名和密码传入user类--%>
<%
if (use.userIsExist()) {//判断用户名在数据库中用户表中是否存在
if (use.passWordIsExist()) {//判断密码是否正确
use.Close();
%>
<jsp:useBean id="stu" class="javabean.Student" scope="session"/><%--创建student类--%>
<jsp:useBean id="teacher" class="javabean.Teacher" scope="session"/>
<%
if (stu.IsExist(use.getUser())) {//判断用户是否是学生
stu.Close();
use.Close();
teacher.CloseConnecting();
%>
<jsp:forward page="student.jsp"/>
<% } else if (teacher.IsExist(use.getUser())) {
stu.Close();
use.Close();
%>
<jsp:forward page = "teacher.jsp"/>
<% }
} else {
%>
<script>
alert("密码不正确!");
history.go(-1);
</script>
<% }
} else {
%>
<script>
alert("用户名不存在,请注册 !");
history.go(-1);
</script>
<% }
}
%>
</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: java.lang.ClassCastException: java.lang.String cannot be cast to javabean.Teacher
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
root cause java.lang.ClassCastException: java.lang.String cannot be cast to javabean.Teacher
org.apache.jsp.login_jsp._jspService(login_jsp.java:113)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
。
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.14 logs.
javabean代码如下
package javabean;import java.sql.*;public class Teacher extends User { private String[] snumber;
private String[] sname;
private String[] ssex;
private String[] sGrade;
private String[] department;
private String[] major;
private String url = "jdbc:sqlserver://localhost:1433;databaseName=学生成绩管理系统;user=sa;password=sqlserver;";
private Connection dbcon;
private Statement stmt;
private ResultSet rs;
private String databaseServerDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; public Teacher() {
stmt = null;
rs = null;
this.dbcon = super.dbcon;// 连接数据库
} public Teacher(String url, String databaseServerDriver) {
super();
this.url = url;
this.databaseServerDriver = databaseServerDriver;
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
} catch (SQLException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} catch (ClassNotFoundException ex) {
// 打印出异常信息
System.out.println(ex.toString());
}
}
}
public boolean IsExist(String number) { String sql = "select * from 教师表 where 职工号='" + number+"'";
try {
rs = null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery(sql); if (rs.next()) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} }
}
package javabean;import com.microsoft.sqlserver.jdbc.SQLServerException;
import java.sql.*;
/**
* 实现对用户表的操作
* **/
public class User { private String url = "jdbc:sqlserver://localhost:1433;databaseName=学生成绩管理系统;user=sa;password=sqlserver;";
protected Connection dbcon;
private Statement stmt;
private ResultSet rs;
private String databaseServerDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String user;
private String passWord;
public User() {
// 初始化参数
stmt = null;
rs = null;
// 连接数据库
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
} catch (SQLException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} catch (ClassNotFoundException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} } // 构造一个连接,用给定的url和服务器驱动
public User(String url, String databaseServerDriver) {
super();
this.url = url;
this.databaseServerDriver = databaseServerDriver;
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
} catch (SQLException ex) {
// 打印出异常信息
System.out.println(ex.toString());
} catch (ClassNotFoundException ex) {
// 打印出异常信息
System.out.println(ex.toString());
}
} /**
* @对数据库执行sql执行语句,主要是插入和更新操作,返回一个布尔值变量
*/
public boolean userIsExist(String user) { String sql = "select * from 用户表 where 用户号='" + user+"'" ;
try {
rs = null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery(sql);
rs.next();
String s = rs.getString(1);
if (s.equals(user)) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} } public boolean userIsExist() { String sql = "select * from 用户表 where 用户号='" + user + "'";
try {
rs = null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery(sql);
if ( rs.next()) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
} } public boolean passWordIsExist() {
try{
rs=null;
stmt = dbcon.createStatement();
rs = stmt.executeQuery("select * from 用户表 where 密码='"+passWord+"' and 用户号='"+user+"'");
rs.next();
int row = rs.getRow();
if (row != 0) {
return true;
} else {
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
}
解决方案 »
- 急!!!HTTPS请求跨域问题
- 大家帮忙解决一个简单的问题
- 从数据库中取出内容往表格放时,如果内容中含有<table>等html标记时,会把整个网页的版面弄乱,如果过滤掉html标签?
- 软件下载问题
- java实现ckeditor编辑器粘贴word内容,word里面图片默认上传
- JSP中操作数据库的类型问题
- 各位高手,问一个初级的问题--Tomcat安装后怎么配置,我才可以访问到servlet
- 一个jsp中使用JavaBean的问题。(附源程序)
- 初学JSP 一个JAVABEAN问题,请大家解决
- 用JDBC-ODBC连接SQLServer7的问题,请大虾多多指点。
- ===========JSP页面传出字符型变量问题=============
- 这道题应该如何来做?求前辈帮解答下。
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:534)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:457)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
类型转换异常,Sring转换javabean.Teacher类报错;
建议包和类名规范些,像javabean做包名,user做用户名很不规范;
此处就说明了原因 类型转换问题。不能将String转换为javabean.Teacher
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;/**
*
* @author Administrator
*/
public class DBConn { private String url = "jdbc:sqlserver://localhost:1433;databaseName=学生成绩管理系统;user=sa;password=sqlserver;";
private Connection dbcon;
private Statement stmt;
private ResultSet rs;
private String databaseServerDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; public DBConn() {
//这里面可以从配置文件中读取 数据库配置信息,就不用在类里面写死了
} public void stmtconn() {
try {
Class.forName(databaseServerDriver);
dbcon = DriverManager.getConnection(url);
stmt = dbcon.createStatement();
} catch (ClassNotFoundException ex) {
System.out.println(ex.toString());
} catch (SQLException ex) {
System.out.println(ex.toString());
}
} public ResultSet query(String sql) {
try {
rs = stmt.executeQuery(sql);
} catch (SQLException ex) {
System.out.println(ex.toString());
}
return rs;
} public boolean isExist(String sql) {
boolean exist = false;
try {
stmtconn();
query(sql);
exist = rs.next();
} catch (SQLException ex) {
System.out.println(ex.toString());
} finally {
close();
}
return exist;
} public void close() {
try {
if (stmt != null) {
stmt.close();
}
if (dbcon != null) {
dbcon.close();
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
}
Student.javapackage javabean;/**
*
* @author Administrator
*/
public class Student { public boolean userIsExist(String user) {
DBConn db = new DBConn();
String sql = "select * from 用户表 where 用户号='" + user + "'";
return db.isExist(sql);
}
}
Teacher.javapackage javabean;import java.sql.ResultSet;
import java.sql.SQLException;/**
*
* @author Administrator
*/
public class Teacher { private ResultSet rs; public boolean IsExist(String number) {
String sql = "select * from 教师表 where 职工号='" + number + "'";
DBConn db = new DBConn();
boolean exist = false;
try {
db.stmtconn();
rs = db.query(sql);
exist = rs.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.close();
}
return exist;
}
}
这里面student和teacher两个判断是否存在用了不同实现方式, 不同情况选择不同实现方式, 灵活着用吧
public void close() {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (dbcon != null) {
dbcon.close();
}
} catch (SQLException ex) {
System.out.println(ex.toString());
}
}
类型转换异常的错误。
额。其实你贴这么多混乱不堪的代码 没多少人会帮您耐心看完的,
建议MVC 设计~
package javabean;import java.sql.ResultSet;
import java.sql.SQLException;/**
*
* @author Administrator
*/
public class Student extends User { public boolean IsExist(String number) {
String sql = "select * from 学生表 where 学号='" + number + "'";
DBConn db = new DBConn();
boolean exist = false;
try {
db.stmtconn();
ResultSet rs = db.query(sql);
exist = rs.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.close();
}
return exist;
}
}User.java
package javabean;import java.sql.ResultSet;
import java.sql.SQLException;/**
*
* @author Administrator
*/
public class User { private String userName;
private String password; public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} //这里面改名了 userIsExist--> isExist
public boolean isExist(String userName) {
DBConn db = new DBConn();
//这里防止sql注入, 简单的替换一下,当然要保证userName不为null,不然会报错
String sql = "select * from 用户表 where 用户号='" + userName.replace("'", "") + "'";
return db.isExist(sql);
} //很少有这样判断, 放弃这个方法, 改用获取用户
//public boolean isExist(String password)
public User getUser(String userName) {
User user = null;
DBConn db = new DBConn();
String sql = "select * from 用户表 where 用户号='" + userName.replace("'", "") + "'";
try {
db.stmtconn();
ResultSet rs = db.query(sql);
if (rs.next()) {
user.setUserName(rs.getString("userName"));
user.setPassword(rs.getString("Password"));
//可以继续set其他东西
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
db.close();
}
return user;
}
}<%@page import="javabean.*"%>
<%@page contentType="text/html" pageEncoding="gbk"%>
<jsp:useBean id="user" class="javabean.User" scope="session"/>
<jsp:useBean id="student" class="javabean.Student" scope="session"/>
<jsp:useBean id="teacher" class="javabean.Teacher" scope="session"/>
<%
request.setCharacterEncoding("gbk");
//我的习惯是变量名和接收参数名保持一致, 不容易搞错了
String username = request.getParameter("username");//变量名称最好写的准确一些, user和username表示意思大不一样, 后面容易搞混淆了
String password = request.getParameter("password");
String errorMsg = "";
String forword = "";
//if (s1.length() != 11 || p1.length() != 6) {//验证用户名和密码格式
//你的代码这里直接用s1.length(), 如果s1不传过来, 是null值 , 这里面就要报错了, 是不是 p1.length()同理
//所以这里我这样写
//同时这里面位置也改了, 无论出错与否, 都尽量生成一个完整的html页面你原来的写法,如果用户名或密码有问题, 返回的页面是不完整的
if (username == null || username.length() != 11 || password == null || password.length() != 6) {
errorMsg = "用户名或密码格式错误!";
} else {
//把得到的用户名和密码传入user类, 这里只是代码示例,并没有用到
user.setUserName(username);
user.setPassword(password); //是否是老师, 不是老师就是学生, 暂且这么说
boolean isTeacher = teacher.IsExist(username); if (user != null) {//判断用户名在数据库中用户表中是否存在, 不等于null就说明存在
//然后判断密码, 一般这样来判断
if (password != null && password.equals(user.getPassword())) {//判断密码是否正确(并且不能为空)
if (teacher.IsExist(username)) {//判断用户是否是学生, 不是老师就是学生
forword = "student.jsp";
} else if (teacher.IsExist(username)) {
forword = "teacher.jsp";
}
} else {
errorMsg = "密码不正确!";
}
} else {
errorMsg = "用户不存在,请注册!";
}
} //这里使用这种方式转发, 注意路径
if (forword.length() > 0) {
request.getRequestDispatcher(forword).forward(request, response);
return;
}
//如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错, 所以, 逻辑处理部分都放到头部
//参考一下: http://www.2cto.com/kf/201109/105650.html
%>
<!--
usebean我一般习惯放在最上面, 因为不论你放哪边,这个对像总归要生成,干脆放上面,一目了然, 变量名我改为user了
有一个逻辑问题, 如果是学生登陆则 bean(student) 包涵了user, 如果是老师登陆, bean(teacher) 也包涵了user
所以这里有必要合并一下, 你自己着情合并一下
-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>JSP Page</title>
</head>
<body>
<%
if (errorMsg.length() > 0) {
%>
<script type="text/javascript">
alert("<%= errorMsg%>");
history.go(-1);
</script>
<%
}
%>
</body>
</html>
reg.jsp ,代码我没有验证
<%@page import="javabean.*"%>
<%@page contentType="text/html" pageEncoding="gbk"%>
<jsp:useBean id="user" class="javabean.User" scope="session"/>
<jsp:useBean id="student" class="javabean.Student" scope="session"/>
<jsp:useBean id="teacher" class="javabean.Teacher" scope="session"/>
<%
request.setCharacterEncoding("gbk");
//我的习惯是变量名和接收参数名保持一致, 不容易搞错了
String username = request.getParameter("username");//变量名称最好写的准确一些, user和username表示意思大不一样, 后面容易搞混淆了
String password = request.getParameter("password");
String errorMsg = "";
String forword = "";
//if (s1.length() != 11 || p1.length() != 6) {//验证用户名和密码格式
//你的代码这里直接用s1.length(), 如果s1不传过来, 是null值 , 这里面就要报错了, 是不是 p1.length()同理
//所以这里我这样写
//同时这里面位置也改了, 无论出错与否, 都尽量生成一个完整的html页面你原来的写法,如果用户名或密码有问题, 返回的页面是不完整的
if (username == null || username.length() != 11 || password == null || password.length() != 6) {
errorMsg = "用户名或密码格式错误!";
} else {
//把得到的用户名和密码传入user类, 这里只是代码示例,并没有用到
user.setUserName(username);
user.setPassword(password); if (user != null) {//判断用户名在数据库中用户表中是否存在, 不等于null就说明存在
//然后判断密码, 一般这样来判断
if (password != null && password.equals(user.getPassword())) {//判断密码是否正确(并且不能为空)
if (student.IsExist(username)) {//判断用户是否是学生, 不是老师就是学生
forword = "student.jsp";
} else if (teacher.IsExist(username)) {
forword = "teacher.jsp";
}
} else {
errorMsg = "密码不正确!";
}
} else {
errorMsg = "用户不存在,请注册!";
}
} //这里使用这种方式转发, 注意路径
if (forword.length() > 0) {
request.getRequestDispatcher(forword).forward(request, response);
return;
}
//如果在你使用<jsp:forward>之前,jsp文件已经有了数据,那么文件执行就会出错, 所以, 逻辑处理部分都放到头部
//参考一下: http://www.2cto.com/kf/201109/105650.html
%>
<!--
usebean我一般习惯放在最上面, 因为不论你放哪边,这个对像总归要生成,干脆放上面,一目了然, 变量名我改为user了
有一个逻辑问题, 如果是学生登陆则 bean(student) 包涵了user, 如果是老师登陆, bean(teacher) 也包涵了user
所以这里有必要合并一下, 你自己着情合并一下
-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>JSP Page</title>
</head>
<body>
<%
if (errorMsg.length() > 0) {
%>
<script type="text/javascript">
alert("<%= errorMsg%>");
history.go(-1);
</script>
<%
}
%>
</body>
</html>