Servlet不显示从html页面获取的数据

时间:2014-03-05 21:55:46

标签: java jsp servlets

我是java中的Web开发新手,刚开始使用带有项目“Welcome Servlet”的servlet。它有3个文件,1。默认包中的ColServlet.java。 2. WebContent文件夹中的index.html。 3. WEB-INF文件夹中的web.xml。 ColServlet.java是:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
   public class ColServlet extends HttpServlet
{

public void doGet(HttpServletRequest request,HttpServletResponse response) 
                throws ServletException, IOException  

 {  
String colname =  request.getParameter("col"); 
response.setContentType("text/html");
PrintWriter info = response.getWriter();

info.println("The color is: ");
info.println(" <HTML>\n" +
            "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
            "<BODY>\n" +
            "<H1>Hello WWW</H1>\n" +
            "<h1>"+colname+"</h1>"+
            "</BODY></HTML>");
info.close();
}
}

index.html文件是:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
            <title>Select Color</title>
    </head>
    <body>
        <form method="GET" action="/ColServlet">
            Select the color:
            <select name="col" size="3">
                <option value="blue">Blue</option>
                <option value="orange">Orange</option>
            </select>
            <input type="submit" value="Submit">
        </form>
    </body>
</html> 

web.xml文件是:

<web-app>
    <servlet>
        <servlet-name>Servlet1</servlet-name>
        <servlet-class>ColServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet1</servlet-name>
        <url-pattern>/ColServlet</url-pattern>
    </servlet-mapping>
</web-app>

现在:问题是每当我选择任何颜色时,下一页都不显示所选颜色。

1 个答案:

答案 0 :(得分:0)

@SotiriosDelimanolis' comment开始,您应该更改<form>中的操作路径,以使用应用程序的上下文路径。您应该在index.html文件中更新此行:

<form method="GET" action="<applicationName>/ColServlet">

其中<applicationName>是您的网络应用程序的名称,通常是您的网络项目的名称,例如“WelcomeServet”(没有引号)。

如果您碰巧使用JSP文件(可以像将index.html重命名为index.jsp一样简单),那么请将此行更新为:

<form method="GET" action="${pageContext.request.contextPath}/ColServlet">