我已经开始编写servlets,从我在网上读到的内容来看,我正在尝试将一个值从jsp传递给我的servle,
我的.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>my</title>
</head>
<body>
<form action="dataprocessingservlet" method="post">
<div id="editor" name = "mytxt">
4
</div>
<button type= "button" style="position: absolute; left: 10%; bottom: 2%;" id="execute" onclick="saveTextAsFile()">Click to execute</button>
<script type='text/javascript'>
function saveTextAsFile()
{
window.open('http://xxx.xxx.xxx.xxx:8085/FirstServlet/mygeco','_top','resizable=yes')
}
</script>
</form></body></html>
我的服务.java
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String text = request.getParameter("mytxt");
PrintWriter out = response.getWriter();
out.println(text);
}
PS:我已经尝试通过ID传递它,但仍然保留空值。
在这里,我从 jsp 页面调用我的 servlet,甚至在点击上。当我运行 jsp 页面并单击按钮时,将显示一个空值。
我的错误是什么,我该如何纠正?
尝试使用带有小更新的saveTextAsFile
函数。
function saveTextAsFile()
{
var myDivText = document.getElementById('editor').innerHTML;
window.open('http://xxx.xxx.xxx.xxx:8085/FirstServlet/mygeco?mytxt=' + myDivText, '_top', 'resizable=yes')
}
我刚刚在查询参数中传递了div 内容。 让我知道它是否有效。
你在没有查询参数或 post 值的情况下调用 servlet,那么"user"后面的值应该如何填充呢?对于测试,请将网址更改为'http://xxx.xxx.xxx.xxx:8085/FirstServlet/mygeco?user=HelloWorld
没有向你的 Servlet 传递任何东西,因为你试图传递一个div,正如我所看到的:
<div id="editor" name = "user">
4
</div>
但是你需要传递一个输入元素,比如
<input id="user" name="user" type="text"/>
或者将参数添加到您的 URL,例如:
'http://xxx.xxx.xxx.xxx:8085/FirstServlet/mygeco?user=MyUserName
@suufang:您只能将<input> tag
参数传递给 Servlet,但是如果要传递<div>
数据,那么首先您必须获取<div> tag
的数据,然后您必须通过附加 URL 来传递该数据。
代码附在下面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>my</title>
</head>
<body>
<form action="dataprocessingservlet" method="post">
<div id="editor" name = "mytxt">
4
</div>
<button type= "button" style="position: absolute; left: 10%; bottom: 2%;" id="execute" onclick="saveTextAsFile()">Click to execute</button>
<script type='text/javascript'>
function saveTextAsFile()
{
var divData = document.getElementbyId("editor").innerHTML;
window.open('http://xxx.xxx.xxx.xxx:8085/FirstServlet/mygeco?mytxt=' + divData,'_top','resizable=yes')
}
</script>
</form></body></html>
尝试上述解决方案,看看效果如何。