后台做密码和确认密码,不一致给出了提示但数据还是输入了数据库怎么改

<%@page import="com.sun.corba.se.spi.orbutil.fsm.Guard.Result"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ page import= "edu.jmi.db.*" %>
<%@ page import= "edu.jmi.dao.*" %>
<%@ page import= "edu.jmi.model.*" %>
<%@ page import= "java.sql.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



Insert title here



<%
String str =null;
//1设置解码
request.setCharacterEncoding("utf-8");
//2获取参数
str=request.getParameter("name");
String str1=request.getParameter("password");
String str2=request.getParameter("password2");
String str3=request.getParameter("mail");
System.out.println(str+str1+str2+str3);
if(str==null){//如果初次加载页面,直接返回,不会执行下面存取数据库的代码
//return;
}else{

//3存取数据库
//3.1获取数据库链接
Connection conn=DB.getConnection();
//3.2准备插入sql语句

String sql="insert into user(name,password,email) values(?,?,?)";
PreparedStatement pst=conn.prepareStatement(sql);//执行sql语句

// pst.setInt(1,1); //id
pst.setString(1,str);//name
pst.setString(2,str1);//pass
pst.setString(3,str3);//email

str1=request.getParameter("password");
str2=request.getParameter("password2");
if(str1.equals(str2)){
    session.setAttribute("usr", str);
    response.sendRedirect("regok.jsp"); 
}else{
    session.setAttribute("errmsg", "密码和确认密码不一致");
} 
String err = (String)session.getAttribute("errmsg");
if(err==null){
      err="";
  } 

//3.3执行插入
int res=pst.executeUpdate();
System.out.println("插入结果是:"+res);
pst.close();
conn.close();
}

%>
<%=session.getAttribute("errmsg") %>

用户名:

密码:

确认密码:

邮箱:



//3.3执行插入
int res=pst.executeUpdate();
System.out.println("插入结果是:"+res);
pst.close();
conn.close();
}
移到
str1=request.getParameter("password");
str2=request.getParameter("password2");
if(str1.equals(str2)){
//3.3执行插入
int res=pst.executeUpdate();
System.out.println("插入结果是:"+res);
pst.close();
conn.close();
}
session.setAttribute("usr", str);
response.sendRedirect("regok.jsp");

}else{
session.setAttribute("errmsg", "密码和确认密码不一致");
}
String err = (String)session.getAttribute("errmsg");
if(err==null){
err="";
}

‘密码’与‘确认密码’是否一致,可以直接放在前台界面通过JS来做一些验证。

你直接在前台判断啊,不一致直接给个提示。没必要交给后台去处理

直接在前端验证,通过在传输值,前后端要分离啊

你只是判断了不一致,但是后续的操作还是执行了,必须在判断错误之后中断后面的操作,后面才不会入库

 那说明代码不合逻辑你在后台做检验的话如果不合法程序直接返回就不走入库操作。而且这样的简单的内容检验一般都放在前端用js完成,不合法的输入直接拒绝处理都不应该提交到后台才对。