我目前正在使用eclipse开发一个简单的Web App项目。
我使用centos server和apache-tomcat-7.0.47。
我有一个 index.jsp 文件:
<form action="MyServlet">
<input type="submit" value="Send" />
</form>
我的servlet文件 MyServlet.java :
package com.srk.pkg;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class MyServlet
*/
public class MyServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public MyServlet() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.print("Hello Everybody..");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
和我的 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" 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>Example1</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<description></description>
<display-name>MyServlet</display-name>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.srk.pkg.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
</web-app>
我遇到的问题是:
我从eclipse运行web应用程序,一切正常。
http://localhost:8080/Example1/index.jsp
和
http://localhost:8080/Example1/MyServlet?
但是当我尝试从我的centos服务器访问它时,我得到了一个
HTTP Status 404 - /Example1/WebContent/MyServlet
输入状态报告
message /Example1/WebContent/MyServlet
说明请求的资源不可用。
任何人都可以帮助我吗?
我使用的链接:
.....:8080/Example1/WebContent/index.jsp
和
....:8080/Example1/WebContent/MyServlet?
也
答案 0 :(得分:0)
您为什么要尝试访问
/Example1/WebContent/MyServlet
项目中WebContent
目录中的所有内容最终都位于生成的war
文件的根目录下。 WEB-INF
以外的所有内容都可以访问,因此您可以
/Example1/index.jsp
否则,您必须通过Servlet
。您没有匹配
/Example1/WebContent/MyServlet
因此给你一个404.
你有
的网址映射<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/MyServlet</url-pattern>
</servlet-mapping>
您可以访问
/Example1/MyServlet
请注意,在浏览器中提交此表单
<form action="MyServlet">
<input type="submit" value="Send" />
</form>
取决于您当前的网址。如果您之前已提出要求
/Example1/index.jsp
然后提交表单会将请求发送到
/Example1/MyServlet
如果你在
/Example1/some/random/path
然后提交将请求发送到
/Example1/some/random/MyServlet
如果您想让您的请求始终转到相同的网址,您应该将路径设为绝对
<form action="${pageContext.request.contextPath}/MyServlet">
<input type="submit" value="Send" />
</form>