无法访问Servlet页面

时间:2015-11-22 07:52:38

标签: java jsp tomcat servlets

美好的一天,

我刚刚配置了tomcat并使用了java servlet页面。我是新手,无法成功点击索引页面,但如果我直接尝试点击表单操作并传递定义的参数,那么我就能看到结果。如果我错过了什么,请指导我。

JSP - 代码

 <div align="center" style="margin-top: 50px;">
    <form action="CrunchifyServlet">
        Please enter your Username:  <input type="text" name="username" size="20px"> <br>
        Please enter your Password:  <input type="text" name="password" size="20px"> <br><br>
        Please enter your Age:  <input type="text" name="age" size="20px"> <br><br>
    <input type="submit" value="submit">
    </form> 
</div>

Java - 代码

 public class HelloCrunchify extends HttpServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // reading the user input
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String age = request.getParameter("age");
        PrintWriter out = response.getWriter();
        out.println (
                  "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" +" +
                      "http://www.w3.org/TR/html4/loose.dtd\">\n" +
                  "<html> \n" +
                    "<head> \n" +
                      "<meta http-equiv=\"Content-Type\" content=\"text/html; " +
                        "charset=ISO-8859-1\"> \n" +
                      "<title> Crunchify.com JSP Servlet Example  </title> \n" +
                    "</head> \n" +
                    "<body> <div align='center'> \n" +
                      "<style= \"font-size=\"12px\" color='black'\"" + "\">" +
                        "Username: " + username + " <br> " + 
                        "Password: " + password + " <br> " +
                        "Age: " + age +
                    "</font></body> \n" +
                  "</html>" 
                );      
        }

}

的web.xml

   <display-name>CrunchifyJSPServletExample</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>
    <servlet-name>Hello</servlet-name>
    <servlet-class>com.crunchify.jsp.servlet.HelloCrunchify</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Hello</servlet-name>
    <url-pattern>/CrunchifyServlet</url-pattern>
</servlet-mapping>
 </web-app>

Project Explorer

如果我试图点击此localhost:9080/CrunchifyJSPServletExample/Crunchify.jsp,我就会收到HTTP状态404.

帮助将不胜感激。

由于

5 个答案:

答案 0 :(得分:5)

您需要从WEB-INF中取出您的jsp并将其直接放在WebContent下,它会起作用。

答案 1 :(得分:2)

在查看你的web.xml并阅读你的评论之后你正在使用Crunchify.jsp发布数据,但是servlet容器在战争中找不到Crunchify.jsp在正确的文件夹中,所以你得到这个错误404,什么你需要做的是将Crunchify.jsp放在与index.jsp相同的文件夹中 enter image description here

如上图所示,像WebPages一样放置Crunchify.jsp - &gt; Crunchify.jsp 现在如果你调用http://localhost:9080/CrunchifyJSPServletExample/Crunchify.jsp应该可以正常工作

答案 2 :(得分:1)

检查您是否使用了正确的上下文路径CrunchifyJSPServletExample。 通常,如果您手动部署到Tomcat,它将是生成的war文件名,或者如果您使用在eclipse中配置的tomcat,则可以在Modules选项卡中指定路径。

答案 3 :(得分:1)

试试吧。更改Java代码。

在:

protected void **doGet**(HttpServletRequest request, HttpServletResponse response) 

后:

protected void **service**(HttpServletRequest request, HttpServletResponse response)

或:

protected void **doPost**(HttpServletRequest request, HttpServletResponse response) 

Html代码方面,通常设置像get或post这样的http方法。例如:

<form action="CrunchifyServlet" method="POST">

但是没有http方法的规范。也许html通过get方法与服务器进行通信,并且servlet无法被识别。

请在servlet中添加类似sysout的代码。并且没有输出,http方法是可疑的。

答案 4 :(得分:1)

  

无法成功点击索引页

我们假设您的索引页面内容位于名为index.html的文件中。请按照以下说明进行操作:

  1. index.html文件放在war文件的根目录中,即与WEB-INF目录处于同一级别。
  2. 将应用打包并部署到上下文CrunchifyJSPServletExample
  3. 最后调用URL localhost:9080 / CrunchifyJSPServletExample 。它应该获取index.html
  4. 的内容