早教吧作业答案频道 -->其他-->
java.lang.NullPointerExceptioncontrol.Login.doPost(Login.java:78)publicclassLoginextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)Stringusername=request.getParameter("username");Stringuserpwd=r
题目详情
java.lang.NullPointerException control.Login.doPost(Login.java:78)
public class Login extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse response)
String user_name =request.getParameter("user_name");
String user_pwd=request.getParameter("user_pwd");
if ((user_name == "") || (user_name==null)){
try{
String result="请输入用户名java";
request.setAttribute("message" ,result) ;
response.sendRedirect("login.jsp") ;
}catch(Exception e){
e.printStackTrace() ;
} }
if ((user_pwd == "") || (user_pwd==null) ){
try{
String result="请输入密码java";
request.setAttribute("message" ,result) ;
response.sendRedirect("login.jsp") ;
}catch(Exception e){
e.printStackTrace() ;
}
}
String sql= "select * from User where user_name='"+user_name+"' and user_psw= '"+user_pwd+"'" ;
Statement stmt = null ;
ResultSet rs = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Market" ,"sa","a");
stmt=conn.createStatement();
System.out.println("success");
}
catch(Exception ex)
{
ex.printStackTrace();
}
try {
rs =stmt.executeQuery(sql) ;
} catch (SQLException e1) {
e1.printStackTrace();
}
HttpSession session = request.getSession() ;
session.setAttribute("user_name", user_name) ;
try{
if (rs.next()){ 这是第78行
response.sendRedirect("success.jsp") ;
}else{
session.setAttribute("message", "用户名或密码不匹配.");
response.sendRedirect("fail.jsp") ;
}
}catch(SQLException e){
e.printStackTrace() ;
}
public class Login extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse response)
String user_name =request.getParameter("user_name");
String user_pwd=request.getParameter("user_pwd");
if ((user_name == "") || (user_name==null)){
try{
String result="请输入用户名java";
request.setAttribute("message" ,result) ;
response.sendRedirect("login.jsp") ;
}catch(Exception e){
e.printStackTrace() ;
} }
if ((user_pwd == "") || (user_pwd==null) ){
try{
String result="请输入密码java";
request.setAttribute("message" ,result) ;
response.sendRedirect("login.jsp") ;
}catch(Exception e){
e.printStackTrace() ;
}
}
String sql= "select * from User where user_name='"+user_name+"' and user_psw= '"+user_pwd+"'" ;
Statement stmt = null ;
ResultSet rs = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Market" ,"sa","a");
stmt=conn.createStatement();
System.out.println("success");
}
catch(Exception ex)
{
ex.printStackTrace();
}
try {
rs =stmt.executeQuery(sql) ;
} catch (SQLException e1) {
e1.printStackTrace();
}
HttpSession session = request.getSession() ;
session.setAttribute("user_name", user_name) ;
try{
if (rs.next()){ 这是第78行
response.sendRedirect("success.jsp") ;
}else{
session.setAttribute("message", "用户名或密码不匹配.");
response.sendRedirect("fail.jsp") ;
}
}catch(SQLException e){
e.printStackTrace() ;
}
▼优质解答
答案和解析
提几点小建议:
1、在逻辑判断中要把是否为空放在前面if ( user_pwd==null || user_pwd.equals("") )
2、判断字符串是否为空应该用user_pwd.trim().length == 0,避免输入多个空字符
3、字符串比较不应该用==而应该用equals方法,user_name == "",
再来说空指针异常:
ResultSet rs = null;//前面声明为null
try {
//当这个地方发生异常时,异常被捕获,没有做任何处理,也就是说rs根本没有赋值成功
rs =stmt.executeQuery(sql) ;
} catch (SQLException e1) {
e1.printStackTrace();
//查询已经出错,要转发到出错页面,或者做其他处理
}
if (rs.next())//前面执行查询出错,rs为声明时的null,这里肯定会出空指针异常.
好的做法,当你声明一个对象为null时,在经过一系列赋值后,在使用前判断下这个对象是否为null.
1、在逻辑判断中要把是否为空放在前面if ( user_pwd==null || user_pwd.equals("") )
2、判断字符串是否为空应该用user_pwd.trim().length == 0,避免输入多个空字符
3、字符串比较不应该用==而应该用equals方法,user_name == "",
再来说空指针异常:
ResultSet rs = null;//前面声明为null
try {
//当这个地方发生异常时,异常被捕获,没有做任何处理,也就是说rs根本没有赋值成功
rs =stmt.executeQuery(sql) ;
} catch (SQLException e1) {
e1.printStackTrace();
//查询已经出错,要转发到出错页面,或者做其他处理
}
if (rs.next())//前面执行查询出错,rs为声明时的null,这里肯定会出空指针异常.
好的做法,当你声明一个对象为null时,在经过一系列赋值后,在使用前判断下这个对象是否为null.
看了 java.lang.Null...的网友还看了以下:
在java中,下面选项中关于java.lang.Object类的说法错误的是()在java中,下面 2020-05-24 …
java.lang.IllegalArgumentException:addChild:Child 2020-06-14 …
java.lang.ClassCastException:java.lang.Stringcann 2020-07-17 …
JAVA中创建新线程问题(53)下列方法中可以用来创建一个新线程的是()。A、实现java.lan 2020-07-17 …
java继承类所有的异常类皆继承下面的类。A、java.lang.ErrorB、java.lang 2020-07-17 …
4、在Java中,所有类的公共基类是()A)java.lang.ObjectB)java.lang 2020-07-17 …
8.下列说法正确的是Ajava.lang.Clonable是类Bjava.lang.Runnabl 2020-07-17 …
java.lang.NullPointerExceptioncontrol.Login.doPos 2020-07-26 …
Can'tfinddependentlibraries怎么解决Exceptioninthread" 2020-08-04 …
java.lang.NoClassDefFoundError:setCausedby:java.l 2020-08-04 …