当前位置: 首页 > 知识库问答 >
问题:

将值从Servlet传递到JSP

武晨
2023-03-14

我正在尝试将某些值从servlet传递到JSP页面,并添加已传递到标记的值,阅读了许多文章,我得到了以下代码。

  1. 使用输入页面选择文件
  2. 验证上传的文件
  3. 调用上传。java将上传的文件保存在WEB-INF中
  4. 在上载的文件中,选定的文件保存为“我的”。txt
  5. 使用缓冲区读取文件内容并将其保存到变量
  6. 将其传递到JSP页面

上载JAVA

上传文件后,

response.setContentType("text/html");
String LINE = "<br>";
String filename = "/WEB-INF/my.txt";
fileTxt = "";
ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream(filename);
if (is != null) {
InputStreamReader isr = new InputStreamReader(is);
BufferedReader reader = new BufferedReader(isr);
PrintWriter writer = response.getWriter();
String text = "";
while ((text = reader.readLine()) != null) {
fileTxt = text + LINE;
}
request.setAttribute("File_Text", fileTxt);
RequestDispatcher rd = request.getRequestDispatcher("mypage.jsp");
rd.forward(request, response);

}

mypage.jsp

<div id="editor"></div>

<form method="post" name="myform" action="upload" target="_blank" enctype="multipart/form-data" style="position: absolute; right: -5%; top: 2%;">
 Left File :     <input type="file" name="dataFile1" id="fileChooser1" /><br><br>
 Right File : <input type="file" name="dataFile2" id="fileChooser2" /><br><br>
 Config File :<input type="file" name="dataFile3" id="fileChooser3" /><br><br>
<button type="button" onclick="ValidateFile()">Click to Upload files</button>
</form>
<script type='text/javascript'>

function ValidateFile()
{
var FileName1 = document.getElementById('fileChooser1').value;
var FileName2 = document.getElementById('fileChooser2').value;
var FileName3 = document.getElementById('fileChooser3').value;

if(FileName1.length == 0 && FileName2.length == 0 && FileName3.length == 0)
{
    alert("No files have been selected to upload"); 
}

else
{
if(FileName1 == FileName3 ||  FileName2 == FileName3)
    {
        alert("Configuration file should not be same as left or right files. Please check your uploads");
    }
else
    {
        document.myform.submit();
    }

var filecontent =   ${File_Text};
var divv = document.getElementById("editor");
divv.innerHTML = filecontent;

}
}
</script>

现在,当我点击上传按钮完成所有这些之后,它就不起作用了,点击根本无法被识别,但是当我删除文件访问代码时,按钮就可以正常工作了。。

  1. 为什么会这样?怎么办?
  2. 这是访问JSP中servlet值的正确方法吗?

==========================================================编辑=======================================

只是为了进一步澄清事情,

  1. 用户上传文件
  2. 该文件保存为我的。txt
  3. 我正在打开这个文件,阅读它的内容
  4. 将这些内容添加到我的ACE编辑器中

共有2个答案

毋弘光
2023-03-14

试试这个:

while ((text = reader.readLine()) != null) {
fileTxt = text + LINE;
}
request.setAttribute("File_Text", fileTxt);
RequestDispatcher rd = request.getRequestDispatcher("mypage.jsp");    
rd.forward(request, response);                                            
赫连子石
2023-03-14

Upload.java没有变化

 <div id="editor">${File_Text}</div>

<form method="post" name="myform" action="upload" target="_blank" enctype="multipart/form-data" style="position: absolute; right: -5%; top: 2%;">
 Left File :     <input type="file" name="dataFile1" id="fileChooser1" /><br><br>
 Right File : <input type="file" name="dataFile2" id="fileChooser2" /><br><br>
 Config File :<input type="file" name="dataFile3" id="fileChooser3" /><br><br>
<button type="button" onclick="ValidateFile()">Click to Upload files</button>
</form>
<script type='text/javascript'>

function ValidateFile()
{
var FileName1 = document.getElementById('fileChooser1').value;
var FileName2 = document.getElementById('fileChooser2').value;
var FileName3 = document.getElementById('fileChooser3').value;

if(FileName1.length == 0 && FileName2.length == 0 && FileName3.length == 0)
{
    alert("No files have been selected to upload"); 
}

else
{
if(FileName1 == FileName3 ||  FileName2 == FileName3)
    {
        alert("Configuration file should not be same as left or right files. Please check your uploads");
    }
else
    {
        document.myform.submit();
    {

}
}
</script>
 类似资料:
  • 我需要你的帮助,在这个特殊的问题上,我想传递一个隐藏输入类型的值。jsp程序到servlet程序 我现在做的基本上是这样的 从servlet中我得到了值 它没有打印任何想法。jsp表单方法是post,servlet方法是doPost 有什么想法为什么它不传递参数吗?

  • 我正在尝试将包含object的ArrayList从servlet传递到JSP。但是 Servlet文件: JSP文件:

  • 问题内容: 当我尝试将Servlet中的列表值设置为会话变量并像JSP一样访问它时, 做得到 JSP 我在JSP中遇到错误,因为“列表无法解析为类型” 那我该怎么做呢?我想将列表从Servlet传递到JSP并填充一个下拉列表。 问题答案: 您要导入列表和演员表吗?

  • 我正在尝试开发简单的购物车应用程序。所以我在Derby DB中有一个简单的数据库表。从那里,我将数据检索到JSP中的一个表中。现在,我想将该值传输到servlet。这是我的代码部分: 项目列表。JSP 所以任何人都知道如何传递这个值(例如:-

  • html或jsp向servlet发送值的唯一方式似乎是通过表单,我尝试的方法是将其作为隐藏参数传递,如下所示: 但是在我向其提交此表单的servlet中,我得到一个编译错误“String conly be converty to list”,用于以下内容: 只需先将参数转换为对象类型,然后再将其转换为列表,如下所示,就会产生相同的异常,但这一次是运行时异常: 是否有任何方法将列表传递给servle

  • 在Servlet中设置值并使用RequestDispatcher在jsp中检索值 在test1Servlet中: request.setAttribute(“alpha”,alpha); 任何人请帮我解决这个问题。