Передача значений между JSP и сервлетом - PullRequest
0 голосов
/ 31 марта 2020

Для моей страницы JSP я прошу пользователя предоставить оценки для элементов, чтобы предоставить пользователю рекомендации для других элементов на основе указанных оценок.

Однако мой сервлет выполняет все вычисляет и принимает файл CSV, который содержит все различные элементы и рейтинги.

Мой вопрос заключается в том, есть ли способ, которым я могу взять рандомизированные значения из сервлета (он же случайные элементы) и представить его на JSP страница до того, как пользователь вводит свои оценки

Я пытался использовать getAttribute и setAttribute, но значения продолжают отображаться как "ноль".

Это файл JSP:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<%@ page import="java.io.*"%>
<%@ page import ="java.util.ArrayList"%>
<%@ page import ="java.util.List"%>
<%@ page import ="java.util.Random"%>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Video Game Recommender</title>
</head>
<body>

<h2>How would you rate the following games?</h2><br><br>

<form action = "InputServlet" method = "POST">
    <h4><%= request.getAttribute("item0") %></h4><br>
    <select name = "first_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item1") %></h4><br>
        <select name = "second_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item2") %></h4><br>
        <select name = "third_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item3") %></h4><br>
        <select name = "fourth_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item4") %></h4><br>
        <select name = "fifth_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item5") %></h4><br>
        <select name = "sixth_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item6") %></h4><br>
        <select name = "seventh_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item7") %></h4><br>
        <select name = "eighth_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item8") %></h4><br>
        <select name = "ninth_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
           <br />
     <h4><%= request.getAttribute("item9") %></h4><br>
        <select name = "tenth_item">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
            <option value="5">5</option>
        </select>
        <br />
        <input type = "submit" value = "Submit"/>
     </form>

 </body>
 </html>

Вот сервлет:

 * Servlet implementation class InputServlet
 */
@WebServlet("/InputServlet")
public class InputServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public InputServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
        ArrayList<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
        ArrayList<ArrayList<String>> item = new ArrayList<ArrayList<String>>();
        ArrayList<ArrayList<String>> user = new ArrayList<ArrayList<String>>();
        ArrayList<ArrayList<String>> itemCos = new ArrayList<ArrayList<String>>();
        ArrayList<ArrayList<String>> userCos = new ArrayList<ArrayList<String>>();

        ArrayList<String> userList = new ArrayList<String>();
        ArrayList<String> itemList = new ArrayList<String>();
        ArrayList<String> itemTitle = new ArrayList<String>();

        ArrayList<String> itemGrad = new ArrayList<String>();
        ArrayList<String> userGrad = new ArrayList<String>();


        ArrayList<String> ratedTitle = new ArrayList<String>();
        ArrayList<String> ratedID = new ArrayList<String>();
        ArrayList<Integer> ratedNumber = new ArrayList<Integer>();
        ArrayList<String> done = new ArrayList<String>();

        ArrayList<Integer> ratedCos = new ArrayList<Integer>();

        String fileName = "/C:/Users/Family/Desktop/Programming/Masters Project/VideoGameMeta.csv";
        String line;

        BufferedReader input = new BufferedReader(new FileReader(fileName));

        String customer = "User";

        String answer = "<html><br>";


        int div = 0;
        int itemNext = 0;
        int userNext = 0;

        double meanAll = 0;

        while((line = input.readLine()) != null){
            String[] elems = line.split(",");
            list.add(new ArrayList<String>());
            list.get(div).add(elems[0]);
            list.get(div).add(elems[1]);
            list.get(div).add(elems[2]);
            list.get(div).add(elems[3]);
            if (!itemList.contains(elems[0])){
              itemList.add(elems[0]);
              item.add(new ArrayList<String>());
              item.get(itemNext).add(elems[0]);
              item.get(itemNext).add(elems[3]);
              item.get(itemNext).add("0");
              item.get(itemNext).add("0");
              itemNext++;
            }
            if (!userList.contains(elems[2])){
              user.add(new ArrayList<String>());
              userList.add(elems[2]);
              user.get(userNext).add(elems[2]);
              user.get(userNext).add("0");
              user.get(userNext).add("0");
              userNext++;
            }
            meanAll = meanAll + Double.valueOf(elems[1]);
            div++;
         }
        input.close();

         user.add(new ArrayList<String>()); 

         userList.add("User");
         user.get(userNext).add("User");
         user.get(userNext).add("0");
         user.get(userNext).add("0");
         userNext++;

         int count = 0;

         while (count < 10){
            Random rand = new Random();
            int random = rand.nextInt(itemList.size()) + 1;
            String current = item.get(random).get(1);
            String id = item.get(random).get(0);
            if (!ratedTitle.contains(current)){
               ratedTitle.add(current);
               ratedID.add(id);
               count++;
            }
         }

         request.setAttribute("item0", ratedTitle.get(0));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item1", ratedTitle.get(1));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item2", ratedTitle.get(2));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item3", ratedTitle.get(3));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item4", ratedTitle.get(4));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item5", ratedTitle.get(5));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item6", ratedTitle.get(6));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item7", ratedTitle.get(7));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item8", ratedTitle.get(8));
         request.getRequestDispatcher("index.jsp").forward(request, response);
         request.setAttribute("item9", ratedTitle.get(9));
         request.getRequestDispatcher("index.jsp").forward(request, response);

         String item1 = request.getParameter("first_item");

         String item2 = request.getParameter("second_item");

         String item3 = request.getParameter("third_item");

         String item4 = request.getParameter("fourth_item");

         String item5 = request.getParameter("fifth_item");

         String item6 = request.getParameter("sixth_item");

         String item7 = request.getParameter("seventh_item");

         String item8 = request.getParameter("eighth_item");

         String item9 = request.getParameter("ninth_item");

         String item10 = request.getParameter("tenth_item");

         ratedNumber.add(Integer.valueOf(item1));
         ratedNumber.add(Integer.valueOf(item2));
         ratedNumber.add(Integer.valueOf(item3));
         ratedNumber.add(Integer.valueOf(item4));
         ratedNumber.add(Integer.valueOf(item5));
         ratedNumber.add(Integer.valueOf(item6));
         ratedNumber.add(Integer.valueOf(item7));
         ratedNumber.add(Integer.valueOf(item8));
         ratedNumber.add(Integer.valueOf(item9));
         ratedNumber.add(Integer.valueOf(item10));
    }
}

Вот скриншот, чтобы показать, что я имею в виду.

enter image description here

...