У меня возникла проблема с проверкой подлинности электронной почты и пароля, независимо от того, принадлежит она зарегистрированному члену или нет. Я использую NetBeans и создал базу данных с таблицей members
. Я создал пул соединений и заполнил таблицу моих участников.Валидация для пользователя, электронной почты и пароля не работает
После внедрения кода, устранения ошибок и просмотра нескольких видеороликов об учебнике NetBeans я до сих пор не могу понять, где я его не хватает. Я застрял там с 4-х дней, и теперь я потерял его. Надеюсь, вы, ребята, можете мне помочь, спасибо заранее.
Это моя таблица пользователей данные:
# | id | email | password | name
------------------------------------------------
1 | 1 | [email protected] | what | Number 1
2 | 2 | [email protected] | fire | Number 2
Это код для моего LoginServlet:
@WebServlet("/login")
public class LoginServlet extends HttpServlet{
@Resource(name = "jdbc/jed")
private DataSource dsMembers;
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String strName = request.getParameter("memberName");
String strPassword = request.getParameter("memberPassword");
String strEmail = request.getParameter("memberEmail");
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
conn = dsMembers.getConnection();
String sql = "SELECT * FROM members";
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()){
if((isValidEmail(strEmail))&& (strEmail.equals(rs.getString("email")))&& (strPassword.equals(rs.getString("password")))&&(strName.equals(rs.getString("name")))){
System.out.println("Success");
HttpSession session = request.getSession();
session.setAttribute("name", strName);
session.setAttribute("email", strEmail);
response.sendRedirect(this.getServletContext().getContextPath() + "/account.jsp");
}
else {
request.getSession().invalidate();
response.sendRedirect(this.getServletContext().getContextPath());
}
}
} catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
}
}
private boolean isValidEmail(String strEmail){
if(strEmail.matches("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@" + "[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*(\\.[A-Za-z]{2,})$"))
return true;
return false;
}
}
Это журнал GlassFish сервер я получаю:
WEB0671: Загрузка приложения [Проект] в [/ Project]
Информация: Проект был успешно развернут за 286 миллисекунд.
WEB0671: Загрузка приложения [Проект] в [/ Project]
Информация: Проект был успешно развернут за 247 миллисекунд.
информация: Invalid пользователя, пароль или адрес электронной почты
информация: Invalid пользователя, пароль или адрес электронной почты
Предупреждение: StandardWrapperValve [org.jedlibrary.lola.loan.ValidationServlet]: PWC1406: Servlet.service() для сервлета org.jedlibrary. lola.loan.ValidationServlet бросили исключение java.lang.IllegalStateException на org.apache.catalina.connector.ResponseFacade.sendRedirect (ResponseFacade.java:524)
на org.jedlibrary.lola.loan.ValidationServlet.doPost (ValidationServlet. java: 46) at javax.servlet.http.HttpServlet.service (HttpServlet.java:688) at javax.servlet.http.HttpServlet.service (HttpServlet.java:770) at org.apach e.catalina.core.StandardWrapper.service (StandardWrapper.java:1550)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:281)
в org.apache.catalina.core.StandardContextValve. вызывать (StandardContextValve.java:175)
в org.apache.catalina.core.StandardPipeline.doInvoke (StandardPipeline.java:655)
в org.apache.catalina.core.StandardPipeline.invoke (StandardPipeline.java:595)
на org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:161)
на org.apache.catalina.connector.CoyoteAdapter.doService (CoyoteAdapter.java:331)
на org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:231)
в com.sun.enterprise.v3.services.impl.ContainerMapper $ AdapterCallable.call (ContainerMapper.java:317)
на ком. sun.enterprise.v3.services.impl.ContainerMapper.service (ContainerMapper.java:195)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter (ProcessorTask.java:860) at com.sun.grizzly.http .ProcessorTask.doProcess (ProcessorTask.java:757) на com.sun.grizzly.http.ProcessorTask.process (ProcessorTask.Java: 1 056)
в com.sun.grizzly.http.DefaultProtocolFilter.execute (DefaultProtocolFilter.java:229)
в com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter (DefaultProtocolChain.java:137)
в com.sun .grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:104)
на com.sun.grizzly.DefaultProtocolChain.execute (DefaultProtocolChain.java:90)
в com.sun.grizzly.http.HttpProtocolChain.execute (HttpProtocolChain.java : 79)
at com.sun.grizzly.ProtocolChainContextTask.doCall (ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call (Выбор KeyContextTask.java:59)
в com.sun.grizzly.ContextTask.run (ContextTask.java:71) в com.sun.grizzly.util.AbstractThreadPool $ Worker.doWork (AbstractThreadPool.java:532)
в com.sun.grizzly.util.AbstractThreadPool $ Worker.run (AbstractThreadPool.java:513)
в java.lang.Thread.run (Thread.java:745)
[Ваша проблема - исключение IllegalStateException] (https://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/ResponseFacade.html#sendRedirect%28java.lang.String%29). – Tom
Спасибо Том, но если я прокомментирую это, он будет показывать пустую страницу, будет ли успех или неудача. – user3127380