我是servlet编程的新手。
以下是我的示例servlet代码
Sample.Java
public class Sample extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter pw=res.getWriter();
String name=req.getParameter("name");//will return value
pw.println("Welcome "+name);
pw.close();
}
}
Web.xml中
<web-app>
<servlet>
<servlet-name>sampleservlet</servlet-name>
<servlet-class>Sample</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>sampleservlet</servlet-name>
<url-pattern>/Sample</url-pattern>
</servlet-mapping>
</web-app>
的index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="Sample" method="get">
Enter your name<input type="text" name="name"><br>
<input type="submit" value="login">
</form>
</body>
</html>
我的问题
当我右键单击我的项目然后单击Run as -> Run on server
时,我选择了服务器,它要求我选择服务器,然后选择要运行的服务器。在eclipse窗口中,打开一个浏览器窗口,其地址URL为http://localhost:8080/Sample/
当我点击login
时,它会给我一个这样的错误,
HTTP状态404 - /示例/欢迎
类型状态报告
消息 /示例/欢迎
说明所请求的资源不可用。
Apache Tomcat / 7.0.62
截图
为什么我会收到这样的错误?
其他详情
服务器:Apache-Tomcat的7.0.62 IDE:Eclipse Java EE kepler
步骤我试图解决问题
我尝试了这些,
结果
我没有在.class
文件夹中看到WEB-INF
个文件。
结果
在此路径&#34; tomcat7 \ work \ Catalina \ localhost \ your app&#34;中,work
文件夹为空。
如果我需要发布更多详细信息,请与我们联系。
IDE的目录结构
答案 0 :(得分:2)
你的代码在tomcat 7和eclipse中对我有用。 也许你的index.html与你发布的那个不一样,因为它的目标是Sample / welcome而不是Sample / Sample。
提示:
<Context docBase="Sample" path="/Sample" reloadable="false" source="org.eclipse.jst.jee.server:Sample"/></Host>
如果您不仔细检查这些文件夹中的permisions。再次从头开始添加tomcat7服务器。
答案 1 :(得分:1)
试试这个,你不需要为任何servlet编写XML文件;)
只需添加注释@WebServlet("/urlpattern")
并在<form action="urlpattern">
只有在使用Eclipse时才能使用。
@WebServlet("/Sample")
public class Sample extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter pw = res.getWriter();
String name = req.getParameter("name"); //will return value
pw.println("Welcome "+name);
pw.close();
}}
希望它有所帮助。