Java 将值从Servlet传递到JSP
我试图将某些值从servlet传递到JSP页面,并添加已传递到标记的值,阅读了许多文章,我得到了以下代码Java 将值从Servlet传递到JSP,java,javascript,jsp,Java,Javascript,Jsp,我试图将某些值从servlet传递到JSP页面,并添加已传递到标记的值,阅读了许多文章,我得到了以下代码 使用输入页面选择文件 验证上载的文件 调用upload.java将上传的文件保存在WEB-INF中 对于上载的文件,选定的文件保存为my.txt 使用缓冲区读取文件内容并将其保存到变量 将其传递到JSP页面 upload.java <div id="editor">${File_Text}</div> <form method="post" name="my
<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>
上传文件后
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);
}
response.setContentType(“text/html”);
字符串行=“
”;
字符串filename=“/WEB-INF/my.txt”;
fileTxt=“”;
ServletContext=getServletContext();
InputStream=context.getResourceAsStream(文件名);
如果(is!=null){
InputStreamReader isr=新的InputStreamReader(is);
BufferedReader读取器=新的BufferedReader(isr);
PrintWriter=response.getWriter();
字符串文本=”;
而((text=reader.readLine())!=null){
fileTxt=文本+行;
}
setAttribute(“文件\文本”,fileTxt);
RequestDispatcher rd=request.getRequestDispatcher(“mypage.jsp”);
转发(请求、响应);
}
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>
左侧文件:
右文件:
配置文件:
单击以上载文件
函数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)
{
警报(“未选择要上载的文件”);
}
其他的
{
如果(FileName1==FileName3 | | FileName2==FileName3)
{
警报(“配置文件不应与左侧或右侧文件相同。请检查您的上载”);
}
其他的
{
document.myform.submit();
}
var filecontent=${File_Text};
var divv=document.getElementById(“编辑器”);
divv.innerHTML=文件内容;
}
}
现在,当我点击上传按钮完成所有这些操作后,它就不起作用了,点击根本无法被识别,但是当我删除文件访问代码时,按钮就可以正常工作了
while ((text = reader.readLine()) != null) {
fileTxt = text + LINE;
}
request.setAttribute("File_Text", fileTxt);
RequestDispatcher rd = request.getRequestDispatcher("mypage.jsp");
rd.forward(request, response);
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>
${File\u Text}
左侧文件:
右文件:
配置文件:
单击以上载文件
函数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)
{
警报(“未选择要上载的文件”);
}
其他的
{
如果(FileName1==FileName3 | | FileName2==FileName3)
{
警报(“配置文件不应与左侧或右侧文件相同。请检查您的上载”);
}
其他的
{
document.myform.submit();
{
}
}
您想要什么有点不清楚。是否要将文件从桌面上载到服务器?是否再次希望在浏览器页面中以文本形式显示文件内容?是否有任何其他参数或数据要显示在页面上?请提及您试图实现的功能。为什么在转发时使用printwriter i通过请求调度器将请求发送到jsp?嘿,我刚刚添加了一个澄清。我只使用print writer检查它是否工作……使用浏览器中的inspect调试器检查它显示了什么错误。你知道jquery吗……因为它们有简单的ajax方法。嘿@Deepak213谢谢你的回答。我会尝试一下,并让你知道。嘿,deepak这是可行的,但所有文本都打印在同一行中…我很高兴你能帮我。嘿,我知道了。谢谢。@Zedai while循环中必须有什么?