首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

初学者求问:访问一个servlet,为什么会跳去下载页面?

2012-05-09 
菜鸟求问:访问一个servlet,为什么会跳去下载页面??RT.....Welcome.html:HTML code!DOCTYPE HTML PUBLIC

菜鸟求问:访问一个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方法报错: java.lang.IllegalStateException: Cannot forward after response has been committed
sendRedirect报错:java.lang.IllegalStateException
 at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)

因此我的建议是你自己建一个页面,result.jsp(此页面与welcom.jsp 在同一目录下就好)

热点排行