将值从JSP传递给servlet,我的错误是什么



我已经开始编写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>

尝试上述解决方案,看看效果如何。

最新更新