각 필드에 대한 유효성 검증을 포함하는 로그인 양식을 작성했습니다. 제출 버튼을 클릭하면 모든 필드의 유효성 검사를 위해 validation()이 호출되며, 유효성 검사가 완료되면 모든 세부 정보가 Oracle 데이터베이스에 삽입되는 다른 JSP 페이지로 리디렉션됩니다.java.lang.NumberFormatException : null
하지만 "org.apache.jasper.JasperException : java.lang.NumberFormatException : null"예외가 발생합니다. 또한 "서버에서이 요청을 수행하지 못하게하는 내부 오류()가 발생했습니다"오류가 발생합니다. 네가 나를 도와 주길 바래. 여기
코드입니다 :<html>
<head>
<script type="text/javascript">
function validate()
{
if(document.frm.username.value=="")
{
alert("Please enter Username");
document.frm.username.focus();
}
else if(document.frm.mobile.value=="")
{
alert("Please Enter your contact number");
document.frm.mobile.focus();
}
else
{
window.location = "insert.jsp";
}
}
</script>
</head>
<body>
<form name="frm">
<table>
<tr><td>User Name:</td><td><input type="text" name="username"></td></tr>
<tr><td>Contact Number:</td><td><input type="text" name="mobile"></td></tr>
<tr><td><input type="submit" value="Submit" onclick="validate()"></td><td></td></tr>
</table>
</form>
</body>
insert.jsp :
int mobile;
try {
mobile = Integer.parseInt(request.getParameter("mobile"));
} catch (NumberFormatException e) {
// do something
}
에서 : 당신이 parseInt()
를 사용하는 경우
<body>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<%
Connection con=null;
int mobile=Integer.parseInt(request.getParameter("mobile"));
String username=request.getParameter("username");
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","manager");
Statement st=con.createStatement();
st.executeUpdate("insert into stud values("+mobile+",'"+username+"')");
out.println("Data is successfully inserted!");
}
catch(Exception e)
{
System.out.print(e);
}
%>
</body>
분명히 휴대 전화 번호는 일반적으로 10 자리 이상이며 정수에 적합합니다. 이것은 국제 전화 번호로 더욱 악화 될 것입니다! – Bridge
사용자 이름이'') 인 경우 어떻게됩니까? 스터드에서 삭제하십시오. - ' – maba
전화 번호는 숫자 형식으로 저장하면 안됩니다. 전화 번호는 수학적 숫자와 같지 않습니다. 예를 들어 계산을하고 싶습니다. 전화 번호가 0으로 시작하면 어떻게 될까요? 'int'는 그것을 기억하지 못할 것입니다. 전화 번호를 저장하는 대신 문자열 유형을 사용하십시오. – Jesper