【问题标题】:Using Html form passing parameter to java file使用 Html 表单将参数传递给 java 文件
【发布时间】:2011-01-07 19:59:20
【问题描述】:

使用 Html 形式将参数传递给 Java 文件我无法在我的 Tomcat 服务器中运行。 谁能一步步描述这个例子?我应该把 .html 文件放在哪里以及 .java 和 .类文件。我正在附加 html 和 java 文件。 .class 扩展名的编译文件我已经完成了!提前谢谢!

<html>

<head>
<title>New Page 1</title>
</head>

<body>

<h2>Login</h2>
<p>Please enter your username and password</p>
<form method="GET" action="/htmlform/LoginServlet">
  <p> Username  <input type="text" name="username" size="20"></p>
  <p> Password  <input type="text" name="password" size="20"></p>
  <p><input type="submit" value="Submit" name="B1"></p>
</form>
<p>&nbsp;</p>

</body>

</html>

这是我的 LoginServlet.java 文件:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class LoginServlet extends HttpServlet{
  public void doGet(HttpServletRequest request, HttpServletResponse response)
                                   throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    String name = request.getParameter("username");
    String pass = request.getParameter("password");
    out.println("<html>");
    out.println("<body>");
    out.println("Thanks  Mr." + "  " + name + "  " + "for visiting roseindia<br>" );
    out.println("Now you can see your password : " + "  " + pass + "<br>");
    out.println("</body></html>");
  }
}

【问题讨论】:

    标签: java html servlets


    【解决方案1】:

    HTML 文件必须放在公共网络内容中,类文件必须放在符合类的package 声明的正确文件夹结构中的/WEB-INF/classes 中。另外不要忘记在/WEB-INF/web.xml 中声明servlet。

    对于 HTML 表单,您需要意识到 URL 中的前导斜杠 / 会将您带到域根目录。如此有效地将您的表单提交给http://localhost:8080/htmlform/LoginServlet。您需要确保 webapp 上下文路径确实命名为 /htmlform,并且 Servlet 位于 web.xml 中并映射到 url-pattern/LoginServlet

    另见:

    • About Servlets - 包含一个 Hello World 示例和几个有用的教程/资源链接。

    与问题无关,Roseindia.net 被认为是最差的学习/示例来源。那里相对很多的sn-ps都被不良做法弄得一团糟。只要您是新手,我建议您忽略该列表。

    【讨论】:

    • 感谢您的快速回复!实际上我已经把 .java 文件放在 /WEB-INF/classes 中,并且还设置了 web.xml 。抱歉,您所说的“公共网络内容”是什么意思??
    • .class 文件,而不是 .java 文件。公共网络内容位于您的/WEB-INF 文件夹所在的位置。您是否还是点击并点击了“Abous Servlets”链接?
    • 非常感谢,我现在就去试试!谢谢你关于roseindia :)
    • 我关注了关于 Servlets 链接。我在那里遇到了一些问题。我按照描述做了所有事情,但是异常报告显示在浏览器中。我设置 web.xml,将 .jsp 文件放在 webapps\contextname\WEB-INF 中,将 HelloServlet.class 放在 classes/com/example 文件夹中。 web.xml 也在 WEB-INFO 文件夹中。最后在浏览器中我粘贴路径localhost:8080/contextname/hello
    • 你到底得到了什么异常?只是“找不到资源”?
    【解决方案2】:

    我不确定我是否完全理解这个问题,但它似乎是在询问将 java 代码和 html 文件放在哪里以便 tomcat 使用它们。这些资源通常一起打包成一个 .war 文件并部署到 tomcat 中。

    【讨论】:

    • 这个问题问得不是很好,对不起我的英语!我有 html 和 java 文件,我已经设置了我的 web.xml。现在我运行我的 Tomcat 服务器,但不知道如何将数据从 html 发送到 java。 LoginServlet.java 和 LoginServlet.class 位于“classes”文件夹中。 web.xml 位于 WEB-INF 文件夹中。但是在哪里放置html文件,?在哪个文件夹?还有一个问题是我无法管理路径,我的意思是例如在 html 文件中的字符串是这样的:“action =”/htmlform/LoginServlet”,这个路径的开始从哪里开始?从 htmlform 文件夹或.. .?
    • 通常情况下,是的。需要,没有。
    • 我找不到问题所在。点击提交按钮后,页面转到file://localhost/LoginServlet?username=sdhsdghgh&password=ghghgghgh&B1=Submit,并且无法打开文件。我究竟做错了什么?请帮我找出我的问题
    • 我注意到了这一点:如果我单击提交按钮,则 URL 的写法类似于 file://localhost/htmlform/LoginServlet?username=Vardges&password=Begoy&B1=Submit,但如果我正在更正来自浏览器的 url 路径,例如 localhost:8080/htmlform/…,它正在工作。任何人都可以在单击提交按钮之前解释如何以及从哪里设置 url 路径。提前谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 2018-05-23
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    相关资源
    最近更新 更多