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

Java 将数据从文本文件加载到JSP Servlet页面,java,jsp,io,Java,Jsp,Io,我不熟悉使用JSP,但我对Java非常熟悉,我遇到了一件奇怪的事情 我有一个文件“customer.txt”,我正在从中读取一条记录(只有一条记录) 使用StringTokenizer类,我将删除元素,然后将每个元素加载到HTML输入文本框中并显示。。。系统正在锁定,消息为“正在等待本地主机”。。。我所做的是不允许的还是错误的?请让我知道 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import j

我不熟悉使用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>");
    }
    }
import java.io.*;
导入javax.servlet.*;
导入javax.servlet.http.*;
导入java.util.*;
导入java.text.*;
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.StringTokenizer;
公共类CustProfile扩展了HttpServlet{
公共无效数据集(HttpServletRequest请求,
HttpServletResponse(响应)
抛出ServletException、IOException{
HttpSession session=request.getSession();
//根据客户ID获取客户信息
整数计数=1;
字符串id=null;
字符串名称=null;
字符串addr1=null;
字符串addr2=null;
字符串city=null;
字符串状态=null;
字符串zip=null;
字符串phone=null;
字符串tvplan=null;
字符串intplan=null;
弦线;
ServletContext sc=getServletContext();
字符串路径=sc.getRealPath(“/WEB-INF/customer.txt”);
FileReader f=新的FileReader(路径);
BufferedReader b=新的BufferedReader(f);
line=b.readLine();
while(行!=null){
StringTokenizer s=新的StringTokenizer(行“,”);
而(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();
}
}
//无论客户是否更改订单,显示
//订单状态。
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
String title=“客户配置文件信息”;
字符串MainPageURL=
response.encodeURL(“/csj/Products.html”);
字符串docType=
“\n”;
out.println(docType+
“\n”+
“”+标题+“\n”+
“\n”+
“+标题+”);
out.println(“
”+ “
”+ ""); out.println (“\n”+ "" + “请输入以下信息:\n”+ "" + "" + "" + “姓名:”+ "" + "" + “
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);
   .............

感谢您抽出时间,我不太明白…我如何补救FileReader来查找我的文件?@PaulT.Rykiel,请参阅我编辑的答案。希望它能解决您的问题。我非常确定它正在查找文件,但我正在循环或挂断。我正在记事本中编写此代码,以便完成一项任务,因此无法调试。我担心的是他在做我不该做的事。