Eclipse Indigo中的Servlet JSP连接问题

时间:2011-05-31 17:42:08

标签: eclipse jsp tomcat7 servlets

我有用于Java EE Web应用程序开发人员的tomcat 7.0.14,jdk1.6和Eclipse Indigo。 我是JSP的新手,所以尝试了Eclipse,因为我认为它使编码更容易。我密切关注this video tutorial

我在我的项目prison- login.java,home.html和修改过的web.xml下创建了2个文件。 当我单击登录(这是第1页)页面中的提交按钮时,它只显示此错误:

   File not found
          Firefox can't find the file at /D:/eclipse/Workspace/Prisonhome/WebContent/WEB-INF/Log?user=sa&pass=sa&action=That's+me. 

我不知道在工作区中保存项目是否不够。

视频和我的Eclipse文件中给出的文件位置之间存在一些差异。例如:我的Eclipse中的web.xml位于servers-> apache-tomcat目录中,而不是web内容 - > WEB_INF-> lib-> web.xml。那很重要么?

我的代码: 的index.html

<html>
<head>
    <title> Welcome :) </title>
</head>
<body>
<form action="Log" method="get">
            <B>
            <br><br><br><br><br><br><br><br><br><br><br><br>
            &nbsp;&nbsp;&nbsp;&nbsp;Username: <input type=text name="user"><br><br>
            &nbsp;&nbsp;&nbsp;&nbsp;Password: <input type=text name="pass"><br><br>
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type=submit name=action value="That's me" style="background-color:666666; color:ffffff; border-color:ee0088">
            </B></font>
        </form>
    </body>
</html>

Login.java:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String uname=request.getParameter("user");
    String passwd=request.getParameter("pass");
    response.getWriter().println("<html><head>This is the response!</head>");
    response.getWriter().println("<body>Response!!</body></html>");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
}

的web.xml:

<servlet>
    <servlet-name>Log</servlet-name>
    <servlet-class>org.prisonhome.packs.Login</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Log</servlet-name>
    <url-pattern>/Log/*</url-pattern>
</servlet-mapping>

2 个答案:

答案 0 :(得分:0)

您需要在tomcat上访问该文件 - 即http://localhost:8080/Prisonhome/index.html。不要从文件资源管理器中启动它。

要实现这一目标,您需要部署应用程序,并运行服务器(tomcat)。

答案 1 :(得分:0)

  

Firefox无法在/ D找到该文件:/ eclipse / Workspace / Prisonhome / WebContent / WEB-INF / Log?user = sa&amp; pass = sa&amp; action =那是+ me。

您需要通过真实的Web URL打开页面,而不是通过本地磁盘文件系统路径打开页面。如果Tomcat在端口8080上的localhost上运行,并且webapp上下文名称为Prisonhome,那么您需要通过

调用它
  

http://localhost:8080/Prisonhome/index.html

关于教程,我建议您阅读Coreservlets.com教程。您可以在Servlets wiki page

底部找到链接列表

无关具体问题,使用GET登录并不是很安全,因为每个人都可以在URL中看到密码。自1998年以来,不推荐使用HTML <font>标记,而是使用CSS。使用过多的<br>&nbsp;标签也是不必要的,请改用CSS位置/边距/填充。