2011-05-06 66 views
1

我正在实现有点网页搜索引擎(使用Lucene库),到目前为止我使用的是一个带有一个小表单的html文件,它在输入文本中用于inter关键字和一个提交按钮来发送表单,重点是我得到的代码是一个.java文件(需要其他.jar文件),并且我是.jsp中的新手,以及html和java如何相互关联,我的问题很清楚:如何从html文件提交表单到一个java文件,并且java如何从html文件接收数据? 我记得,在PHP中,我们做例如$ _GET ['关键字']但没有想法在Java中。如何将表单从html文件提交给java文件?

感谢您的支持, 关心。

+3

我不想粗鲁,但这是一个很大的问题,只是“如何编写计算机程序?”的一小步。这不是一些可以在几个章节里回答的问题。我认为你需要写一本关于JSP和servlet的书。 – Jay 2011-05-06 16:37:19

回答

4

一个很大的答案的小问题!

要理解的主要问题是当前图片中缺少大块:在HTML和Java之间,您需要一个Web服务器。不仅仅是一个Web服务器,一个知道如何运行Java程序的Web服务器 - 这被称为servlet引擎。令人高兴的是,其中有很多很容易获得。您应该掌握TomcatJetty;两者都非常好(如果你打算使用Jetty,我会建议使用版本6而不是版本7--长话短说)。

一旦你有了你的web服务器,你将需要给它HTML和你的Java,所以它可以为客户端提供HTML,并运行Java。您可以通过将它们打包在一个名为'Web归档文件'或WAR的文件中,该文件具有特定的布局以及名为web.xml的配置文件。它可能会帮助您查看极小的example WAR

这里要理解的一个关键是servlet引擎如何调用你的Java代码。有一个标准的框架,你可以将你的代码写成一个叫做servlet的东西。甲骨文有关于这些的tutorial,但它相当密集; servlet实际上比它所建议的要简单得多。上面提到的示例WAR具有一个非常简单的示例,需要配置才能使其工作。你会发现javax.servlet.http包的文档是必不可少的 - 这就是servlet可以使用的绝大多数有用的API所在的地方(父代javax.servlet包中也有重要的东西)。

安装完servlet引擎,编写servlet并将其打包为WAR之后,您需要弄清楚如何启动servlet引擎并为其提供WAR。在那里,我恐怕我会离开你去阅读文档。我认为每个人都略有不同!

无论如何,这应该让你去。这实际上是Java Web编程世界中最基本的部分。除了servlet之外,还有一些您应该了解的JSP。在那之后,存在一个巨大而又棘手的空间,称为web框架,旨在简化Web应用程序的编写。每个人都有他们最喜欢的 - 我的东西叫做Stripes,这很简单,但真的让事情完成。之后,您可能还需要查看更复杂的框架,如JSFWicket,此后,可能会使用像SpringSeam这样的“全堆栈”框架或其他更专注的服务器端技术,如Enterprise JavaBeans。或者你可能只想坚持使用servlets!

2

创建servlet类并将其映射到特定的URL模式,例如, /servleturl。让HTML <form>操作指向该URL。

<form action="servleturl" method="post"> 
    <input type="text" name="foo" /> 
    <input type="text" name="bar" /> 
    <input type="submit"> 
</form> 

在servlet类,覆盖doPost()方法和request.getParameter()收集提交的值。

String foo = request.getParameter("foo"); 
String bar = request.getParameter("bar"); 
// ... 

然后,在同一个servlet方法中,根据文档的相关文档,导入,实例化和/或调用该Java程序。例如,

YourProgram program = new YourProgram(); 
program.process(foo, bar); 
// ...