Java 了解如何在Eclipse中运行servlet
我正在为我的一个家庭作业写一个简单的航班预订申请。我的航班预订网站有一个登录、注册、航班搜索、结果显示和确认JSP页面。我希望在用户尝试执行操作时调用servlet,例如: 用户转到login.jsp并单击login按钮,表单有一个target/core/login(core是我的核心servlet,login是应该处理该请求的对应servlet) 在之前的家庭作业中,我们编写了自己的web服务器,因此我没有使用Tomcat部署serlvet。。。现在我们不再使用我们自己的web服务器,我在弄清楚如何让servlet在Eclipse中运行时遇到了一些问题 我在Eclipse中创建了一个动态Web项目,它自动生成以下文件夹结构:Java 了解如何在Eclipse中运行servlet,java,eclipse,tomcat,servlets,Java,Eclipse,Tomcat,Servlets,我正在为我的一个家庭作业写一个简单的航班预订申请。我的航班预订网站有一个登录、注册、航班搜索、结果显示和确认JSP页面。我希望在用户尝试执行操作时调用servlet,例如: 用户转到login.jsp并单击login按钮,表单有一个target/core/login(core是我的核心servlet,login是应该处理该请求的对应servlet) 在之前的家庭作业中,我们编写了自己的web服务器,因此我没有使用Tomcat部署serlvet。。。现在我们不再使用我们自己的web服务器,我在弄清
../P3
../P3/src
../P3/src/core
../P3/build
../P3/WebContent
../P3/WebContent/META-INF
../P3/WebContent/WEB-INF
My login.jsp有一个表单,当填写并单击该表单时,会将结果提交到我的核心包中的登录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>
由于某种原因,服务器不知道servlet。。。我在网上读了几篇(和)文章,解释了可能出现的问题,但我还是发现了错误。我在第一篇文章中尝试了这个解决方案,但没有成功;第二篇文章没有真正应用,因为server 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>
P3
login.jsp
登记处
登记处
核心.注册
登记处
/登记
登记
登记
核心。注册
登记
/登记册
登录
登录
core.Login
登录
/登录
我应该如何设置我的项目,以便它在Eclipse中正确部署?作为家庭作业,我将为您指出我认为正确的方向 我建议您查看部署描述符。(它是/WEB-INF/WEB.xml文件)。在该文件中,您定义了客户端用于访问这些servlet的servlet和URL映射 除非存在这些元素,否则Tomcat不知道如何为servlet请求提供服务
如果您告诉NetBeans您正在创建一个新的Servlet,而不是一个新的Java类,它将提示您输入适当的信息来设置一切。表单action
action=“src/core/Login”
与Servlet映射/Login
不匹配。表单操作应该指向URL,而不是本地磁盘文件系统路径。他使用的是Eclipse,不是Netbeans。谢谢Brabster。家庭作业是编写页面,我们没有被告知专门使用Netbeans或Eclipse。。。所以我仍然要做我的家庭作业,但我就是不知道正确的项目设置应该是什么。哦,好吧,原始信息没有给出web.xml的内容,因此没有足够的信息来诊断问题的细节。很高兴你被分类了。当你提到web.xml文件时,我的脑子里突然亮起了一个灯泡,我又回去发了+谢谢你给我这个主意。很抱歉,我没有早点拿到。@Brabster-我有相关的问题。你能帮帮我吗。谢谢。您已经在/Login
上映射了servlet。因此,URL应该是http://localhost:8080/P3/Login
。因此,您需要将表单操作设置为action=“Login”
。您总是让它看起来很简单^^!:)@BaulusC我刚刚注意到有多少次你把我的问题从servlet
标记到servlet
:)。。。然而,好消息是我只花了2年时间就注意到了!!!hehehe@Lirik:哈哈。从那时起,就引入了堆栈交换。不再需要重新标记!;)@我有相关的问题。你能帮帮我吗。谢谢
<?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>