Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在同一页面的文本区域中打印文件内容_Html_Jsp_Servlets_Upload_Textarea - Fatal编程技术网

Html 在同一页面的文本区域中打印文件内容

Html 在同一页面的文本区域中打印文件内容,html,jsp,servlets,upload,textarea,Html,Jsp,Servlets,Upload,Textarea,我需要一个单一的文件上传页面和一个文本区域,其中的文件内容打印在这一页 目前我有一个jsp文件和一个servlet: index.jsp的一部分: <form action="FileReader" ENCTYPE="multipart/form-data" method="POST"> <textarea name="textinputarea" rows="14" cols="130" readonly> Some text </textarea&g

我需要一个单一的文件上传页面和一个文本区域,其中的文件内容打印在这一页

目前我有一个jsp文件和一个servlet:

index.jsp的一部分:

 <form action="FileReader" ENCTYPE="multipart/form-data" method="POST">
 <textarea name="textinputarea" rows="14" cols="130" readonly>
  Some text 
 </textarea>
 <br> <br><tr>


  <td valign="top" align="left" height="200" width="33%">
  <img class="start_img" src="file_Selections.jpg"> <br> 

  <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
  <input type="file" name="user_file" accept="text/xml">   
  <input type="submit" value="Validate" /> <br>
   </form>

一些文本




servlet的一部分:

public void doPost(HttpServletRequest request, HttpServletResponse response)      
String name = request.getParameter("textinputarea");
(...)
}else {
String otherFieldName = item.getFieldName();
String otherFieldValue = item.getString();}}

(...)

out.println("<html>");
out.println("<head>");
out.println("<title>Processing get requests with data</title>");
out.println("</head>");

// body section of document
out.println("<body>");
while ((strLine = br.readLine()) != null) {

// Print the content on the console
out.println(strLine + "</br>");
 }
 out.println("</body>");

 // end of html document
 out.println("</html>");
  out.close();

  } catch (Exception e) {
 response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
 };
 }
public void doPost(HttpServletRequest请求,HttpServletResponse响应)
字符串名称=request.getParameter(“textinputarea”);
(...)
}否则{
字符串otherFieldName=item.getFieldName();
String otherFieldValue=item.getString();}
(...)
out.println(“”);
out.println(“”);
println(“使用数据处理get请求”);
out.println(“”);
//文件正文部分
out.println(“”);
而((strLine=br.readLine())!=null){
//在控制台上打印内容
out.println(strLine+“
”); } out.println(“”); //html文档结束 out.println(“”); out.close(); }捕获(例外e){ sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,例如toString()); }; }
这实际上是在新页面中打印文件的内容。我试图为文本区域和“String name=request.getParameter(“textinputarea”);”提供相同的名称


谢谢你的时间

所有表单字段都可在此
else
块中使用,您在后处理中完全忽略了该块

} else {
    String otherFieldName = item.getFieldName();
    String otherFieldValue = item.getString();
}
不要忽视它。这些值表示常规表单字段的名称=值对

请注意,您不能在
多部分/表单数据
编码请求上使用
getParameter()
。这正是您使用ApacheCommonsFileUpload提取文件的原因。您应该使用相同的API来提取
多部分/表单数据请求的其他部分

另见:

好的,谢谢你的建议!试图找到一种将加载的文件显示到文本区域的方法,我注意到默认文本(对用户的一些说明)没有被删除。我试图使用一些javascript,但找不到方法。最后,我发现通过将请求发送到另一个jsp,它实际上与我已经得到的jsp相同,只是文本区域是空的。因此,现在当上传一个文件时,指令被删除,上传的文件出现。我想知道是否有更有效的方法来做这件事;getRequestDispatcher(“Fileopened.jsp”).forward(请求,响应);只需动态/有条件地打印textarea的正文。例如,
${textareaContent}
并使用相同的servlet预处理请求(在
doGet()
中)和后处理请求(在
doPost()
中)。在
doGet()
中设置默认值,在
doPost()
中设置文件内容。最后,通过servlet的URL而不是JSP的URL打开页面。另请参见我应该在哪个部分调用get和post?我的意思是,在表格的“方法”字段中,目前我有“post”。我应该把“get”放在哪里才能被执行?呃,把你的表格贴好就行了。当您以通常的方式(如果您使用servlet的URL而不是JSP的URL)在浏览器中打开页面时,将调用
doGet()
。再次阅读前面链接的servlets wiki页面,了解具体示例和详细说明。