Для моей страницы 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));
}
}
Вот скриншот, чтобы показать, что я имею в виду.