将数据从TEXT文件加载到JSP Servlet页面

时间:2013-11-17 08:18:13

标签: java jsp io

我是使用JSP的新手,但我非常熟悉Java,我发生了一件奇怪的事情。

我有一个文件“customer.txt”,我正在阅读一条记录(只有一条记录)

并使用我正在削减元素的StringTokenizer类,然后我想将每个元素加载到我的HTML输入文本框中并显示...系统正在锁定并且消息是“等待本地主机”。我正在做什么不允许或错误?请让我知道

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.text.*;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;


public class CustProfile extends HttpServlet {
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    HttpSession session = request.getSession();
    // Get Customer Information based on CustId
    int count = 1;
    String id = null;
    String name = null;
    String addr1 = null;
    String addr2 = null;
    String city = null;
    String state = null;
    String zip = null;
    String phone = null;
    String tvplan = null;
    String intplan = null;
    String line;
    ServletContext sc = getServletContext();
    String path = sc.getRealPath("/WEB-INF/customer.txt");
    FileReader f = new FileReader(path);
    BufferedReader b = new BufferedReader(f);
    line = b.readLine();
    while (line != null){
        StringTokenizer s = new StringTokenizer(line, ",");

           while (s.hasMoreElements()) {
              id = s.nextElement().toString();
              name = s.nextElement().toString();
              addr1 = s.nextElement().toString();
              addr2 = s.nextElement().toString();
              city = s.nextElement().toString();
              state = s.nextElement().toString();
              zip = s.nextElement().toString();
              phone = s.nextElement().toString();
              tvplan = s.nextElement().toString();
              intplan = s.nextElement().toString();

}
     }
       // Whether or not the customer changed the order, show
    // order status.
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String title = "Customer Profile Information";
    String MainPageURL =
          response.encodeURL("/csj/Products.html");
    String docType =
      "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
      "Transitional//EN\">\n";
    out.println(docType +
                "<HTML>\n" +
                "<HEAD><TITLE>" + title + "</TITLE></HEAD>\n" +
                "<BODY BGCOLOR=\"#FDF5E6\">\n" +
                "<H1 ALIGN=\"CENTER\">" + title + "</H1>");

    out.println("<BR>" +
        "<BR>" +
        "<a href=" + MainPageURL + ">Previous Page</a>");  

        out.println
          ("<Form>\n" +   
          "<CENTER>" +
            "Please Enter the following Information:\n" +
            "<TABLE>" +
            "<TR>" +
            "<TD>" +
            "Name:" +
            "</TD>" +
            "<TD>" +
            "<Input type=\"Text\" name=\"F_name\" value=" + name + "  </input>\n" +
            "</TR>" +

            "<BR>" +
            "<TR>" +
            "<TD>" +
            "Street Address:" +
            "</TD>" +
            "<TD>" +
            "<Input type=\"Text\" name=\"F_Add1\" value=" + addr1 + " </input>\n" +
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR>" +
            "<TD>" +
            "Apt or Suite:" +
            "</TD>" +
            "<TD>" +
            "<Input type=\"Text\" name=\"F_Add2\" value=" + addr2 + " </input>\n" + 
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR>" +
            "<TD>" +
            "City:" +
            "</TD>" +
            "<TD>" +
            "<Input type=\"Text\" name=\"F_City\" value=" + city + "</input>\n" +
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR><TD>" +
            "State:" +
            "</TD><TD>" +
            "<Input type=\"Text\" name=\"F_state\" value=" + state + "</input>\n" +
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR><TD>" +
            "Zip Code:" +
            "</TD>" +
            "<TD>" +
            "<Input type=\"Text\" name=\"F_Zip\" value=" + zip + "</input>\n" +
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR>" +
            "<TD>" +
            "Phone Number:" +
            "</TD>" +
            "<TD>" +
             "<Input type=\"Text\" name=\"F_Phone\" value=" + phone + " </input>\n" +
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR><TD>" +
            "Cable Plan:" +
            "</TD>" +
            "<TD>" +
            "<Input type=\"Text\" name=\"F_tvPlan\" value=" + tvplan + "</input>\n" +
            "</TD>" +
            "</TR>" +
            "<BR>" +
            "<TR><TD>" +
            "Internet Plan:" +
            "</TD>" +
            "<TD>" +
            "<input type=\"Text\" name=\"F_IntPlan\" value=" + intplan + "</input>\n" +
            "</TD>" +
            "</TR>" +
            "<TABLE>" +


            "</CENTER>" +
            "</Form>"  );




        String updateURL =
          response.encodeURL("/csj/UpdateCust");
        // "Proceed to Checkout" button below table
        out.println
          ("</TABLE>\n" +
           "<FORM ACTION=\"" + updateURL + "\">\n" +
           "<BIG><CENTER>\n" +
           "<INPUT TYPE=\"SUBMIT\"\n" +
           "       VALUE=\"Update Profile\">\n" +

           "</CENTER></BIG>" +
           "</FORM>");


      out.println("</BODY></HTML>");
    }
    }

1 个答案:

答案 0 :(得分:0)

sc.getRealPath()期待URL路径。它会将URL路径转换为实际路径。所以,以下陈述不正确。

    String path = sc.getRealPath("/WEB-INF/customer.txt");

更改您的代码,如:

    String path = sc.getRealPath("/");// Here you will get valid path.
    FileReader f = new FileReader(path+"/WEB-INF/customer.txt");
    BufferedReader b = new BufferedReader(f);
   .............