Как сохранить значения полей на странице jsp, когда jsp вызывает сервлет и перенаправляет обратно на тот же jsp - PullRequest
0 голосов
/ 08 июня 2018

У меня есть одна страница welcome.jsp, где я собираю немного информации и с помощью HTML FORM отправляю этот объект запроса и ответа сервлету для вставки данных в БД, поэтому после этой операции я хочу вернуться к той же самойWelcome.jsp, но когда я пытался использовать RequestDispatcher rs = request.getRequestDispatcher ("Welcome.jsp");rs.forward (запрос, ответ);

Я потерял все заполненные значения в том же Welcome.jsp, поэтому, пожалуйста, предложите, есть ли способ, которым я могу отправить существующий объект запроса и ответа с новым запросом и ответомсервлету и отправит обратно старый объект запроса и ответа из сервлета в JSP.

Ниже приведен код из "Welcome.jsp"

<!DOCTYPE html>
<%@page import="***********"%>
<%@page import="java.io.Console"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.util.ArrayList"%>
<html>

<head>
  <title>Treatment Dashboard</title>
  <meta charset="utf-8" />
  <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">

<!--   <script type="text/javascript">
        function noBack()
         {
             window.history.forward()
         }
        noBack();
        window.onload = noBack;
        window.onpageshow = function(evt) { if (evt.persisted) noBack() }
        window.onunload = function() { void (0) }
    </script> -->    
</head>

<body>
    <%
        HttpSession sessions = request.getSession();
        String lanId = (String)sessions.getAttribute("lanid");
        System.out.println("session Lanid:- " + lanId);
    %>
   <!-- Codrops top bar -->
   <div class="codrops-top">

                <a>
                    <strong> VALUES </strong>
                </a>

                <span class="right">

                        <strong> VALUE </strong>

                </span>                        
  <div class="menu-area">
    <div id="dl-menu" class="dl-menuwrapper">
      <button class="dl-trigger">Open Menu</button>
      <ul class="dl-menu">
        <li><a href="#intro">Profile</a></li>
        <li><a href="#WeekendsShift">Weekends Shift</a></li>
        <li><a href="#compoff">Comp Off</a></li>
        <li><a href="<%=request.getContextPath()%>/LogoutServlet">Log Off</a></li>
      </ul>
    </div>
  </div>


  <!-- intro area -->
  <div id="intro">

    <div class="intro-text">
      <div class="container">
        <div class="row">


          <div class="col-md-12">
            <div class="intro-data">
            <div class="brand">
              <%            
                  String fname      = (String) request.getAttribute("fname");
                  String lname      = (String) request.getAttribute("lname");
                  String emailid    = (String) request.getAttribute("emailid");
                  String ext        = (String) request.getAttribute("ext");
                  String rmlanid    = (String) request.getAttribute("rmlanid");
                  String role       = (String) request.getAttribute("role");
                  String ipadd      = (String) request.getAttribute("ipadd");
                  String wcounts    = (String) request.getAttribute("weekendsCount");
                  String acocounts  = (String) request.getAttribute("appliedCompOff");
                  String rcocounts  = (String) request.getAttribute("remainingCompOff");
                  String pacocounts = (String) request.getAttribute("appliedCompOffPendingApprovalcount");   
              %>              
               <table style="width:100%" >
                     <tr>
                        <td>
                            <label for="userName" class="uname" data-icon="u"> Name :- </label>
                        </td>
                        <td>            
                             <label for="userName" class="uname" data-icon="u"><%=fname%> <%=lname%></label>
                        </td>
                      </tr>
                      <tr>
                        <td>
                            <label for="userEmail" class="email" data-icon="u"> Email :- </label>
                        </td>
                        <td>            
                             <label for="userEmail" class="email" data-icon="u"><%=emailid%> </label>
                        </td>
                      </tr>
                      <tr>
                        <td>
                            <label for="userExt" class="ext" data-icon="u"> EXT :- </label>
                        </td>
                        <td>            
                             <label for="userExt" class="ext" data-icon="u"><%=ext%> </label>
                        </td>
                      </tr>
                      <tr>
                        <td>
                            <label for="userRmlanid" class="rmlanid" data-icon="u"> RM Lan-Id :- </label>
                        </td>
                        <td>            
                             <label for="userRmlanid" class="rmlanid" data-icon="u"><%=rmlanid%> </label>
                        </td>
                      </tr>
                      <tr>
                        <td>
                            <label for="userIpadd" class="ipadd" data-icon="u"> TechM Machine IP :- </label>
                        </td>
                        <td>            
                             <label for="userIpadd" class="ipadd" data-icon="u"><%=ipadd%> </label>
                        </td>
                      </tr>
                      <tr>
                        <td>
                            <label for="userWeekendsNumber" class="weekends" data-icon="WND"> Worked ON Weekends :- </label>
                        </td>
                        <td>            
                             <label for="userWeekendsNumber" class="weekends" data-icon="WND"> <%=wcounts%> </label>
                        </td>
                      </tr>                   
                      <tr>
                        <td>
                            <label for="userCompOffApplied" class="compoff" data-icon="u"> Applied Comp Off :- </label>
                        </td>
                        <td>            
                             <label for="userCompOffApplied" class="compoff" data-icon="u"> <%=acocounts%> </label>
                        </td>
                      </tr>
                      <tr>
                        <td>
                            <label for="userCompOffAvailed" class="compoff" data-icon="u"> Remaining Comp Off :- </label>
                        </td>
                        <td>            
                             <label for="userCompOffAvailed" class="compoff" data-icon="u"> <%=rcocounts%> </label>
                        </td>
                      </tr>
                      <tr>
                      <td>
                            <label for="userCompOffPendingApproval" class="compoff" data-icon="u"> CompOff Pending For Approval :- </label>
                        </td>
                        <td>            
                             <label for="userCompOffPendingApproval" class="compoff" data-icon="u"> <%=pacocounts%> </label>
                        </td>
                      </tr>                                       
                      <tr>
                        <td> </td>
                        <td>
                             <input type="submit" value="Update"/>          
                             <!-- <input type="submit" value="Cancel"/> -->
                        </td>
                      </tr>                                                                               
                </table> 
            </div>
            </div>
          </div>
        </div>
      </div>
    </div>

  </div>

<!-- Weekend Shift -->
  <section id="WeekendsShift" class="home-section bg-white">
    <div class="container">
      <div class="row">
            <div class="col-md-12">
            <div class="intro-data">
            <form  method = "post" action="AddWeekendsShiftDetails" autocomplete="on" >             
               <div class="brand">    
               <table style="width:100%" >                  
                     <tr>
                        <td>
                            <p> <br><br><br>
                                <label for="weekendDetails" class=""> Worked On Weekend :- </label>
                            </p>
                        </td>
                        <td>
                            <p><br><br><br>
                                <input type="text" id= "datepicker1" placeholder="Weekend Date" name="pickedDate"/>
                                <script>
                                    var datepicker = $("#datepicker1").datepicker({
                                        dateFormat: 'yy-mm-dd',
                                        changeMonth: true, 
                                        changeYear: true                                      
                                        }).val();                               
                                </script>
                            </p>                            
                        </td>
                      </tr>
                     <tr>
                            <td>
                                <p> <br>
                                    <label for="processname" class="uname" data-icon="PN" > Process Name :- </label>
                                </p>
                            </td>
                            <td>
                                <p> <br>
                                    <input id="processname" name="processname" required="required" type="text" placeholder="ex:-BAC"/>                                    
                                </p>
                            </td>
                      </tr>                                                               
                      <tr>
                        <td> </td>
                        <td>
                            <p> <br> 
                                <input type="submit" value="Submit"/> &nbsp;&nbsp;          
                                <input type="reset" value="Reset"/>
                             </p>
                        </td>
                      </tr>                                                                               
                </table> 
            </div>
            </form>
            </div>
          </div>
      </div>
    </div>
  </section>

  <!-- Comp Off -->
  <section id="compoff" class="home-section bg-white">
    <div class="container">
      <div class="row">
            <div class="col-md-12">
            <div class="intro-data">
            <form  method = "post" action="AddCompOffDetails" autocomplete="on" >
                <div class="brand">
              <%  
                final String USER_WEEKENDS_COMPOFF_DETAILS_QRY = "SELECT WEEKEND_DATE FROM tbl_weekend_rota WHERE (LANID= ? and IS_COMPOFF_CONSUMED = 'N' and IS_APPROVED != 'P')";
                Connection con = null;                  
                con = DBConnection.createConnection();
                PreparedStatement ps = null;
                ps =con.prepareStatement(USER_WEEKENDS_COMPOFF_DETAILS_QRY);
                ps.setString(1, lanId);

                ResultSet rs = ps.executeQuery();
              %>              
               <table style="width:100%" >      
                     <tr>
                        <td>
                            <p> <br><br><br>
                                <label for="userName" class=""> Apply CompOff :- </label>
                            </p>    
                        </td>
                        <td>
                            <p><br><br><br>
                                <select name="compOffDate">
                                    <option>-- Available CompOffs --</option>
                                    <%  while(rs.next()) { %>
                                        <option><%=rs.getString(1)%></option>
                                    <% } %>
                                    <% con.close();%>
                                </select>
                            <p>                             
                        </td>
                      </tr>                                                                   
                      <tr>
                        <td> </td>
                        <td>
                            <p><br>
                                <input type="submit" value="Apply"/> &nbsp;&nbsp;&nbsp;         
                                <input type="reset" value="Reset"/> 
                                <br><br>
                             </p>
                        </td>
                      </tr>                                                                               
                </table> 
            </div>
            </form>
            </div>
          </div>
      </div>
    </div>
  </section>

</body>

</html>

Но когда я нажал на Кнопка отправки вызывает AddWeekendsShiftDetails сервлет, так что в этом случае эта форма отправит свой собственный объект запроса и ответа, верно?Итак, из сервлета AddWeekendsShiftDetails я вставляю значения в Mysql DB

Ниже приведен код из сервлета AddWeekendsShiftDetails : -

package com.taskManagment.login;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.Date;

//import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/AddWeekendsShiftDetails")
public class AddWeekendsShiftDetails extends HttpServlet {
    private static final long serialVersionUID = 1L;
    public AddWeekendsShiftDetails() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {      
        String sDate = request.getParameter("pickedDate");
        String processName = request.getParameter("processname");       

        try {                       
            Date sqlDate=Date.valueOf(sDate);

            Connection con = null;
            con = DBConnection.createConnection();

            String lanId = SessionDetails.getDetailsFromSession(request, "lanid");
            System.out.println("session Lanid from Weekend Servlet:- " + lanId);

            insertWeekendShiftDetails(con, lanId, processName, sqlDate);
            con.close();

            /*RequestDispatcher rs = request.getRequestDispatcher("Welcome.jsp");
            rs.forward(request, response);*/
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

    public static void insertWeekendShiftDetails(Connection con, String lanId, String processname, Date date ) {
        PreparedStatement ps = null;

        try {
            String insertWeekendRotaDetails = "MY INSERT QUERY";

            java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());

            ps = con.prepareStatement(insertWeekendRotaDetails);
            ps.setString(1, null);                  ps.setString(2, lanId);
            ps.setDate(3, (java.sql.Date) date);    ps.setString(4, processname);           
            ps.setString(5, "Y");                   ps.setString(6, "N");           
            ps.setString(7, null);                  ps.setDate(8, null);
            ps.setString(9, "N");                   ps.setDate(10, sqlDate);
            ps.setDate(11, null);

            ps.executeUpdate();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Теперь из doPost , когда я хочу вернуться к «Welcome.jsp» с кодом, подобным

RequestDispatcher rs = request.getRequestDispatcher("Welcome.jsp");
rs.forward(request, response);

, чтобы он отправлял обратно объект запроса и ответа в форме, котораябыл вызван из раздела и из-за чего другие значения в полях становятся нулевыми, поэтому я хочу, чтобы я мог хранить старые значения на Welcome.jsp странице.

1 Ответ

0 голосов
/ 08 июня 2018

перед отправкой вам нужно установить атрибуты, которые вы хотите запросить.Вы можете сделать это используя request.setAttribute ("attribute_name", "attribute_value");и вы можете получить его, используя request.getAttribute на следующей странице.Например,

request.setAttribute("errorMsg", "Invalid data . Please correct the input data");
requestDispatcher = request.getRequestDispatcher("error.jsp");
requestDispatcher.forward(request, response);

А затем в error.jsp вы можете использовать:

<%=request.getAttribute("errorMsg") %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...