繁体   English   中英

了解如何在Eclipse中运行servlet

[英]Understanding how to run a servlet in Eclipse

我正在为我的一个作业写一个简单的航班预订申请表。 我的航班预订网站有登录,注册,航班搜索,结果显示和确认JSP页面。 我想在用户尝试执行操作时调用servlet,例如:

用户转到login.jsp并单击Login按钮,表单有一个目标/核心/登录(核心是我的核心servlet,Login是应该处理该请求的相应servlet)。

在之前的作业中,我们编写了自己的Web服务器,因此我没有使用Tomcat来部署serlvet ...现在我们不再使用自己的Web服务器,我在查找如何获取servlet在Eclipse中运行。

我在Eclipse中创建了一个Dynamic Web Project,它自动生成以下文件夹结构:

../P3  
../P3/src  
../P3/src/core  
../P3/build  
../P3/WebContent 
../P3/WebContent/META-INF  
../P3/WebContent/WEB-INF  

我的login.jsp有一个表单,当填写并单击时,将结果提交到我的核心包中的Login servlet:

 <form name="input" action="src/core/Login" method=GET>
  Username: <input type="text" name="userName" />
  <br>
  Password: <input type="password" name="password" />
  <br>
  <input type="submit" value="Login" />
 </form> 

Eclipse有一个内置的浏览器,所以当我运行login.jsp时,它会在Eclipse浏览器中加载它并显示它。 当我单击Login按钮时,它应该将userName和密码发送到Login servlet,但我收到以下错误:

HTTP Status 404 - /P3/src/core/Login

--------------------------------------------------------------------------------

type Status report

message /P3/src/core/Login

description The requested resource (/P3/src/core/Login) is not available.

由于某种原因,服务器不知道servlet ...我在线阅读了一些( 第一第二篇 )文章解释可能的问题,但我仍然得到错误。 我在第一篇文章中尝试了解决方案但它没有用; 第二篇文章并没有真正适用,因为服务器settings.xml文件已经包含正确的标志和目录。

这是我的WEB-INF / web.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>P3</display-name>
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
    <description></description>
    <display-name>Registration</display-name>
    <servlet-name>Registration</servlet-name>
    <servlet-class>core.Registration</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Registration</servlet-name>
    <url-pattern>/Registration</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>Register</display-name>
    <servlet-name>Register</servlet-name>
    <servlet-class>core.Register</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Register</servlet-name>
    <url-pattern>/Register</url-pattern>
  </servlet-mapping>
  <servlet>
    <description></description>
    <display-name>Login</display-name>
    <servlet-name>Login</servlet-name>
    <servlet-class>core.Login</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/Login</url-pattern>
  </servlet-mapping>
</web-app>

我应该如何设置我的项目以便在Eclipse中正确部署?

表单操作action="src/core/Login"与servlet映射/Login不匹配。 表单操作应指向URL,而不是指向本地磁盘文件系统路径。

因为它是家庭作业,我只会指出你认为正确的方向。

我建议你看一下你的部署描述符 (这是/WEB-INF/web.xml文件)。 在该文件中,您定义了servlet以及客户端将用于访问这些servlet的URL映射

除非存在这些元素,否则Tomcat不知道如何为servlet提供请求。

如果您告诉NetBeans您正在创建一个新的Servlet,而不是新的Java类,它将提示您输入适当的信息来设置所有内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM