QA@IT
«質問へ戻る

質問を投稿

java.lang.NumberFormatException: For input string

お世話になります。
初歩的な質問ですみません。
java.lang.NumberFormatException: For input string
のエラーが消せなくて困っています。

public class LoginServlet extends HttpServlet{
    private static final long serialVersionUID = 1L;
    @SuppressWarnings("unused")
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {      
        try {
            request.setCharacterEncoding("Windows-31J");
            String sql = "SELECT * FROM login WHERE name = ? AND password = ?";
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/JavaServlet?useUnicode=true&characterEncoding=UTF-8","admin","adminpass");
            PreparedStatement stmt = connection.prepareStatement(sql);
            stmt.setString(1,request.getParameter("name"));
            stmt.setString(2,request.getParameter("password"));
            ResultSet rs = stmt.executeQuery();
            List<LoginBean> ret = new ArrayList<LoginBean>();
            if (rs.next()) {
                LoginBean user = new LoginBean();
                user.setName(rs.getString("name"));
                ret.add(user);
            }
            if (ret != null) {
                request.getSession().setAttribute("login", ret);
                getServletContext().getRequestDispatcher("/certification.jsp").forward(request,response);
            } else {
                List<String> messages = new ArrayList<String>();
                messages.add("ログインに失敗しました。");
                request.setAttribute("errorMessages", messages);
                getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
            }
            rs.close();
            stmt.close();
            connection.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }      
}

getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
↑の行だとトレースでは指定しているのですが、
どこがjava.lang.NumberFormatExceptionなのかわかりません。
別に数字を扱うパラメーターはないのですが・・・。
どなたかお知恵をお貸し下さい。

お世話になります。
初歩的な質問ですみません。
java.lang.NumberFormatException: For input string
のエラーが消せなくて困っています。
```java
public class LoginServlet extends HttpServlet{
	private static final long serialVersionUID = 1L;
	@SuppressWarnings("unused")
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {		
		try {
			request.setCharacterEncoding("Windows-31J");
			String sql = "SELECT * FROM login WHERE name = ? AND password = ?";
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/JavaServlet?useUnicode=true&amp;characterEncoding=UTF-8","admin","adminpass");
			PreparedStatement stmt = connection.prepareStatement(sql);
			stmt.setString(1,request.getParameter("name"));
			stmt.setString(2,request.getParameter("password"));
			ResultSet rs = stmt.executeQuery();
			List<LoginBean> ret = new ArrayList<LoginBean>();
			if (rs.next()) {
				LoginBean user = new LoginBean();
				user.setName(rs.getString("name"));
				ret.add(user);
			}
			if (ret != null) {
				request.getSession().setAttribute("login", ret);
				getServletContext().getRequestDispatcher("/certification.jsp").forward(request,response);
			} else {
				List<String> messages = new ArrayList<String>();
				messages.add("ログインに失敗しました。");
				request.setAttribute("errorMessages", messages);
				getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
			}
			rs.close();
			stmt.close();
			connection.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}	   
}
```
getServletContext().getRequestDispatcher("/index.jsp").forward(request,response);
↑の行だとトレースでは指定しているのですが、
どこがjava.lang.NumberFormatExceptionなのかわかりません。
別に数字を扱うパラメーターはないのですが・・・。
どなたかお知恵をお貸し下さい。