Сохраните данные из JSP в базу данных с помощью сервлета и обновите страницу JSP - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть следующая страница JSP, которая смотрит на сервлет, получает имя пользователя и возвращает его на другую страницу jsp (Result.jsp)

<html>
<body>
  <table>
    <form name="setRuns" action="/servlet/setUserRuns" method="POST">
      <tr>
        <td>
          <p>Username:</p>
          <input type="text" placeholder="Enter Username.." name="user">
          <button type="submit" id="myButton">Submit </button>
    </form>
    <br><br>
    </td>
    </tr>
  </table>
</body>

</html>

Ниже приведен код для Result.jsp

<html>

<body>
  <table border="0" cellpadding="3" cellspacing="3" width="100%">
    <form name="setRuns" action="/servlet/setUserRuns" method="POST">
      <thead>
        <tr style="background-color: #79b7e7;">
          <th>UserName</th>
          <th>End Date</th>
          <th>Saving</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>
            <%=session.getAttribute("userName")%>
          </td>
          <td><input type="date" name="EndDate"></td>
          <td><input type="submit" name="save" value="Save"></td>
        </tr>
      </tbody>
    </form>
  </table>
</body>

</html>

Следующий код предназначен для сервлета:

 public class setUserRuns extends HttpServlet {
static Logger log = Logger.getLogger(OnAccountUsers.class.getName());

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    HttpSession session = request.getSession(true);
    log.debug("doGet");
    // Set response content type
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    // start db connection
    Connection con = SubscribeConnectionFactory.getInstance().getConnection();

    String clientName = request.getParameter("user");

    ResultSet rs = null;
    PreparedStatement stmt = null;
    try {

        String sql = "SELECT * FROM userdatabase.account inner join userdatabase.users on account.user = users.userName where userName = ?";
        stmt = con.prepareStatement(sql);
        stmt.setString(1, clientName); // setting user =?
        rs = stmt.executeQuery(); // execute the query, and get a result set

        boolean entryFound = false;
        // iterate through the java result set      
        while (rs.next()) {
            entryFound = true;

            session.setAttribute("userName", clientName);           
            response.sendRedirect("/jsp/Result.jsp");                               
        }           
    } catch (Exception e) {
        // error
        System.out.println("Error: " + e.getMessage());
    } finally {
        // close result set
        SubscribeConnectionFactory.getInstance().closeResultSetAndStatement(rs, stmt);
        // close connection
        SubscribeConnectionFactory.getInstance().closeConnection(con);
    }
}


public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    doGet(request, response);
}

public void destroy() {
    PooledDataSource.destroyPooledDataSources();
}

}

После перенаправления страницы из сервлета, янужно выбрать дату из держателя даты в Result.jsp и обновить ее до базы данных при отправке «Сохранить», а также обновить дату на странице jsp.Есть ли способ сделать это через тот же doGet в любом случае?Я впервые играю с сервлетами.Любая помощь приветствуется.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...