Tom*_*dad 27 tomcat servlets http-status-code-404
我是编写Java Servlet的新手,我正在努力想要一个简单的HelloWorld例子来正常工作.
HelloWorld.java类是:
package crunch;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
我正在运行Tomcat v7.0,并且已经阅读了类似的问题,响应涉及更改invoker servlet-mapping部分web.xml,本节实际上并不存在,当我添加它时仍然会出现同样的问题.
小智 21
试试这个(如果是Java EE V6)
package crunch;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
@WebServlet(name="hello",urlPatterns={"/hello"})
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("Hello World");
}
}
Run Code Online (Sandbox Code Playgroud)
现在到达servlet http://127.0.0.1:8080/yourapp/hello
其中8080是默认的tomcat端口,yourapp是applciation的上下文名称
Pet*_*sik 11
您肯定需要将servlet映射到某个URL.如果您使用Java EE 6(这至少意味着Servlet API 3.0),那么您可以注释您的servlet
@WebServlet(name="helloServlet", urlPatterns={"/hello"})
public class HelloWorld extends HttpServlet {
//rest of the class
Run Code Online (Sandbox Code Playgroud)
然后你可以去,然后localhost:8080/yourApp/hello显示值.如果你不能使用Servlet 3.0 API,你需要将这个servlet注册到web.xml文件中
<servlet>
<servlet-name>helloServlet</servlet-name>
<servlet-class>crunch.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)
如果使用Java EE 7,编写Java servlet很容易
@WebServlet("/hello-world")
public class HelloWorld extends HttpServlet {
@Override
public void doGet(HttpServletRequest request,
HttpServletResponse response) {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("Hello World");
out.flush();
}
}
Run Code Online (Sandbox Code Playgroud)
自从servlet 3.0起
好消息是不再需要部署描述符!
阅读Java Servlets教程.
| 归档时间: |
|
| 查看次数: |
287229 次 |
| 最近记录: |