I have Vector declared in index.jsp page like this:
<%! Vector vNumbers = new Vector();%>
I want to use it in servlet, how do I correctly get it? Also, how do I send Vector back from servlet to JSP? Thanks!
Joeri, no, I dont use framework. I have the following servlet:
import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.FileWriter;
public class Sort extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
addNumber(request);
goToPage("/index.jsp", request, response);
}
private void goToPage(String address, HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(address);
dispatcher.forward(request, response);}
public static void addNumber(HttpServletRequest request){
try{
HttpSession session = request.getSession(true);
String path = session.getServletContext().getRealPath("/") + "numbers.txt";
String dataName = "textarea2";
FileWriter writer = new FileWriter(path, true);
writer.write(dataName + ":\n");
writer.flush();
writer.close();}
catch ( Exception e) {}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}
Here is index.jsp:
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%! Vector vNumbers = new Vector();%>
<HTML>
<HEAD>
<TITLE>Sorting</TITLE>
</HEAD>
<BODY>
<H1>Sorting a vector</H1>
<FORM ACTION="index.jsp" METHOD="POST">
Input a number:
<input type="text" name="textarea1">
<INPUT TYPE="SUBMIT" VALUE="Enter">
</form>
<FORM ACTION="index.jsp" METHOD="POST">
Enter amount of numbers to generate:
<input type="text" name="textarea2">
<input type="SUBMIT" value="Generate">
</FORM>
Your list:
<br>
<%
String number = request.getParameter("textarea1");
String value = request.getParameter("textarea2");
if (number != null) vNumbers.add(number);
Random randomGenerator = new Random();
if (value != null) for (int i = 0; i < Integer.parseInt(value); ++i)
vNumbers.add(randomGenerator.nextInt(100));
out.println(vNumbers);
%>
<br>
<br>
<br>
</form>
<FORM ACTION="Sort.do" METHOD="POST">
<input type="SUBMIT" value="Sort">
</FORM>
<br>
<%
String file = application.getRealPath("/") + "numbers.txt";
FileReader filereader = new FileReader(file);
BufferedReader br = new BufferedReader(filereader);
String eachLine = br.readLine();
while (eachLine != null) {
out.println(eachLine);
out.println("<br>");
eachLine = br.readLine();
}
filereader.close();
%>
</BODY>
<HTML>