【发布时间】:2014-04-28 04:51:17
【问题描述】:
我是 JSP 的新手,我正在尝试弄清楚如何将在 JSP 页面上的表单中输入的数据传递给 java 类,并在点击时将此数据发送回 JSP 页面。
我的 index.jsp 看起来有点像这样:
<%@ page import="mypackage.*" %>
<% myClass c = new myClass();
c.setString("String"); %>
<p>This is a test: <%= c.getString(); %></p>
以上代码将输出“字符串”。如果我在页面加载时设置值,我可以毫无问题地访问我的课程。经过一些研究,我尝试使用 servlet。我修改了我的表单以在表单操作中添加 servlet“testServlet”:
<form method="POST" action="testServlet">
然后在 testServlet 中的 doPost() 方法上我添加了这个:
String myString = request.getParameter("myString"); //myString is also the name of my textbox
System.out.println("Entered string: " + myString);
但是,我显然错过了它应该如何工作的流程的一个关键部分,而且我很可能对此有误,并且在我按下提交后所有表单都重定向到 testServlet,所以我得到了错误该资源不可用,因为它不是 JSP/html 页面。
所以我的问题是,我如何将数据从 JSP 传递到 java,反之亦然?另外,有没有办法在没有 servlet 的情况下做到这一点?什么是学习 JSP 及其行为(例如传递数据)的好教程/示例?请帮忙。
经过更多研究,我现在可以使用 jsp:useBean 将索引上的数据集传输到详细信息,但是,正如我在访问过的所有论坛中所读到的那样,应该使用 servlet 来处理这个问题,但这确实作为初学者,我更加困惑,所以我真的很想弄清楚我在这里缺少什么。
我已确保 servlet 已在 web.xml 上注册,并且我没有更改其中的任何内容。
更新:我尝试从头开始重新创建项目,并以某种方式设法使 servlet 工作。事实证明,我在 doGet() 方法上遗漏了一些东西。但是现在我的问题是,有没有一种方法可以在不使用 servlet 或 JSP 文件中的页面导入的情况下处理表单?我看到了一个不使用 servlet 或页面导入的示例代码。我确实注意到了标签。
【问题讨论】:
-
它是在 web.xml 中自动注册的,所以我没有再更改任何内容。无论如何,我已经尝试使用 JSP:usebean 代替它似乎工作正常,除非在索引和登录页面之间必须有一个 JSP 页面才能工作,否则,值将为空。我将更新我的帖子以显示我所做的更改
-
您应该为此使用 Servlet。不要使用 jsp 来处理您的业务逻辑或不要在 jsp 上保留任何 java 代码,jsp 是一个视图,Servlet 是控制器意味着您应该将所有 java 代码保留在 servlet 中,以便将来您可以调试代码。但不是在jsp中。
-
是的,这就是我目前所读到的。我仍在研究如何使用 servlet。我读过一些关于使用 Ajax 的文章,但这让我更加困惑。
-
你应该把这部分代码添加到你感到困惑的问题中,然后我们可以帮助你理解。也把你的
Servlet提问,如果你有web.xml