日期:2014-05-17  浏览次数:20779 次

菜鸟求问:访问一个servlet,为什么会跳去下载页面??
RT.....
Welcome.html:
HTML code

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Welcome you!</title>
  </head>
  
  <body>
  <form action="welcome" method="get">
  请输入用户名:<input type="test" name="user" >
              <input type="submit" value="提交">
  <form>
  </body>
</html>




Welcome.java:
Java code

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;

public class Welcome extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        String user=req.getParameter("user");
        String welcomeInfo="Welcome you,"+user;

        resp.setContentType("test/html");

        PrintWriter out=resp.getWriter();

        out.println("<html><head><title>");
        out.println("Welcome Page");          
        out.println("</title></head>");
        out.println("<body>");
        out.println(welcomeInfo);
        out.println("</body></html>");

        out.close();
    }
}





web.xml:
XML code

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <servlet>
    <servlet-name>helloworld</servlet-name>
    <servlet-class>SimpleHello</servlet-class>
  </servlet>

   <servlet>
    <servlet-name>welcome</servlet-name>
    <servlet-class>Welcome</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>helloworld</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>welcome</servlet-name>
    <url-pattern>/welcome</url-pattern>
  </servlet-mapping>

</web-app>




访问:localhost:8080/ch06/welcome,直接跳到下载页面...下载那个welcome的文件,这是什么情况??

PS:web.xml里面的hello能成功访问,即访问localhost:8080/ch06/hello能成功跳转(有一个对应的servlet),文件都是自己建立的,没有用IDE。

------解决方案--------------------
在servlet处理的welcome中加上resposne.sendRedirect("welcome.jsp");这段代码即可。
它的意思是响应跳转到某个页面。
------解决方案--------------------
首先,你要清楚你的servlet并没有指向和返回任何页面,只是输出流,所以你提示下载文件是正常的,虽然上面有人提供了 请求重定向,但
是无论是forward方法还是sendRedirect方法调用前面都不能有PrintWriter输出到客户端。
forward方法报错: ${id},${param.id}这种叫什么东西?该怎么处理