T
teser3
The below Pagination works great using a Servlet where page number is
entered in the url and has to be a digit:
http://127.0.0.1:8080/theWeb/mypackage/page/1
But sometimes someone might manually input a non digit entry (
http://127.0.0.1:8080/theWeb/mypackage/page/2d ) in the URL and it
will ge me error message:
java.lang.NumberFormatException: For input string: "2d"
Here is the Servlet and I cant seem to create a redirect message if
someone enters a non digit number:
package mypackage;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class TheServlet extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
PrintWriter out = res.getWriter();
out.write("<hr>");
String pg = req.getPathInfo();
out.write("page # " + pg + "<br />");
HttpSession sess = req.getSession();
ArrayList items = null;
int j = 0;
int recordTotal = 0;
items = new ArrayList();
sess.setAttribute("items", items);
try
{
Class.forName("org.gjt.mm.mysql.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://
localhost/myf?user=deve&password=mypwd");
Statement stmt = connection.createStatement();
ResultSet results = stmt.executeQuery("SELECT * from user");
while(results.next())
{
recordTotal++;
String myd = results.getString("lastname");
items.add(myd);
}
}
catch(Exception e) {
System.err.println(e);
}
int perPage = 3;
int displayPages = (recordTotal + perPage - 1)/perPage;
pg = pg.substring(1);
j = Integer.parseInt(pg) * perPage - perPage;
Object temp = sess.getAttribute("items");
if(temp instanceof ArrayList)
{
items = (ArrayList) temp;
}
else
{
out.write("Type Cast error. Send status code 500.");
}
//items = (ArrayList) sess.getAttribute("items");
for (int i = 0; i < perPage && i + j < recordTotal; i++) {
if (items != null) out.write("<br>" + items.get(i + j) + "\n");
}
}
}
Servlet mapping in web.xml
<servlet-mapping>
<servlet-name>TheServlet</servlet-name>
<url-pattern>/mypackage/page/*</url-pattern>
</servlet-mapping>
Any suggestions or way for me to redirect a non digit url entry?
entered in the url and has to be a digit:
http://127.0.0.1:8080/theWeb/mypackage/page/1
But sometimes someone might manually input a non digit entry (
http://127.0.0.1:8080/theWeb/mypackage/page/2d ) in the URL and it
will ge me error message:
java.lang.NumberFormatException: For input string: "2d"
Here is the Servlet and I cant seem to create a redirect message if
someone enters a non digit number:
package mypackage;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class TheServlet extends HttpServlet{
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException {
PrintWriter out = res.getWriter();
out.write("<hr>");
String pg = req.getPathInfo();
out.write("page # " + pg + "<br />");
HttpSession sess = req.getSession();
ArrayList items = null;
int j = 0;
int recordTotal = 0;
items = new ArrayList();
sess.setAttribute("items", items);
try
{
Class.forName("org.gjt.mm.mysql.Driver");
Connection connection = DriverManager.getConnection("jdbc:mysql://
localhost/myf?user=deve&password=mypwd");
Statement stmt = connection.createStatement();
ResultSet results = stmt.executeQuery("SELECT * from user");
while(results.next())
{
recordTotal++;
String myd = results.getString("lastname");
items.add(myd);
}
}
catch(Exception e) {
System.err.println(e);
}
int perPage = 3;
int displayPages = (recordTotal + perPage - 1)/perPage;
pg = pg.substring(1);
j = Integer.parseInt(pg) * perPage - perPage;
Object temp = sess.getAttribute("items");
if(temp instanceof ArrayList)
{
items = (ArrayList) temp;
}
else
{
out.write("Type Cast error. Send status code 500.");
}
//items = (ArrayList) sess.getAttribute("items");
for (int i = 0; i < perPage && i + j < recordTotal; i++) {
if (items != null) out.write("<br>" + items.get(i + j) + "\n");
}
}
}
Servlet mapping in web.xml
<servlet-mapping>
<servlet-name>TheServlet</servlet-name>
<url-pattern>/mypackage/page/*</url-pattern>
</servlet-mapping>
Any suggestions or way for me to redirect a non digit url entry?