You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by ba...@yahoo.com on 2005/03/26 17:21:10 UTC
Problem with error-handling
I am using Tomcat5.5, j2sdk1.5
I deliberately created a SQLException to try error
page handling but it does not work and i don't know
why.
I have been trying to solve this problem for hours
with no result. I would appreciate it if someone
offers to look at my war file for me. I'm desperate
please help me.
web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN"
"http://localhost/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
<param-name>driverClassName</param-name>
<param-value>com.mysql.jdbc.Driver</param-value>
</context-param>
<context-param>
<param-name>dbUsername</param-name>
<param-value>user</param-value>
</context-param>
<context-param>
<param-name>dbPassword</param-name>
<param-value>password</param-value>
</context-param>
<listener>
<listener-class>
MyListener
</listener-class>
</listener>
<servlet>
<servlet-name>ErrorServlet</servlet-name>
<servlet-class>chapter04.ErrorServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>chapter04.LoginServlet</servlet-class>
<init-param>
<param-name>dburl</param-name>
<param-value>jdbc:mysql://localhost/test</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ErrorServlet</servlet-name>
<url-pattern>/error</url-pattern>
</servlet-mapping>
<error-page>
<error-code>403</error-code>
<location>/html/login.html</location>
</error-page>
<error-page>
<exception-type>java.sql.SQLException</exception-type>
<location>/error</location>
</error-page>
</web-app>
LoginServlet.java (doPost method)
public void doPost(HttpServletRequest req,
HttpServletResponse res)
throws IOException, ServletException {
String userid = req.getParameter("userid");
String password = req.getParameter("password");
if (userid != null && password != null &&
userid.length() > 0
&& password.length() > 0) {
ServletConfig config = getServletConfig();
ServletContext context =
config.getServletContext();
//context param
String driverClassName =
context.getInitParameter("driverClassName");
String dbUsername =
context.getInitParameter("dbUsername");
String dbPassword =
context.getInitParameter("dbPassword");
//config param
String dburl = config.getInitParameter("dburl");
MySqlDAO dao = new MySqlDAO();
try {
dao.init(driverClassName, dburl, dbUsername,
dbPassword);
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
throw new
ServletException("ClassNotFoundException", e1);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
throw new ServletException("SQLException", e1);
}
try {
if(dao.verifyUser(userid, password)) {
context.setAttribute("userid", userid);
ServletContext ct = getServletContext();
RequestDispatcher rd = ct
.getRequestDispatcher("/jsp/welcome.jsp");
rd.forward(req, res);
} else {
res.setStatus(HttpServletResponse.SC_FORBIDDEN);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new ServletException("SQLException", e);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
res.sendError(HttpServletResponse.SC_FORBIDDEN);
/*
RequestDispatcher rd =
req.getRequestDispatcher("html/login.html");
rd.forward(req, res);
*/
}
return;
}
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org