doGet()方法使用的问题

有两个页面,一个是Doget.jsp,一个是Welcome.java.

第一个页面的代码为:

<%@ page contentType="text/html; charset=gb2312" %>
<form action="welcome" method="get">
<p>输入用户名:<input type="text" name="user"></p>
<p><input type="submit" value="提交"></p>
</form>

第二个页面的代码为:

package test;
import java.io.*;
import java.io.PrintWriter;
import javax.servlet.*;
import javax.servlet.http.*;
public class Welcome extends HttpServlet {
 public void doGet(HttpServletRequest request,HttpServletResponse response) throws
 ServletException,IOException{
  response.setContentType("text/html;charset=GB2312");
  PrintWriter out=response.getWriter();
  String user=request.getParameter("user");
  user=new String(user.getBytes("iso-8859-1"));
  
  String WelcomeInfo="欢迎访问本网站"+user;
  out.println("<html>");
  out.println("<head>");
  out.println("<title");
  out.println("WelcomePage页面");
  out.println("</title>");
  out.println("</head>");
  out.println("<body>");
  out.println("<table border=1><tr><td>");
  out.println("<font color=red>"+WelcomeInfo+"</font>");
  out.println("</td></tr></table>");
  out.println("</body>");
  out.println("</html>");
  out.close();
 }
}可是提交后welcome页面呈现的是空白的,却没有报错。不知是什么原因!

恩,没有进servlet

这样,你把

html中的
action="welcome"

和web.xml中的

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

两个welcome换个名字,比如说 都改成testwel

试试看。

你点击提交之后 ,浏览器的url地址是有带参数的吧

你有没有在web.xml文件中配置对welcome请求的servlet处理

form里面提交是Post,你上面的代码应该在

doPost() 里面写。

[quote]get方式也可以啊,为什么要用post呢?我就是想用get方式提交。[/quote]

哦,没注意你的方法设的的确是get,你看一下tomcat的日志。

看一下你的web.xml的配置。

[quote]页面呈现的是空白的[/quote]

页面是空白的,查看一下页面的源码,是否返回了内容。

贴出你的web.xml

你的web.xml中 Welcome 的url配置如何?

觉得没可能啊,
把你工程粘上来看下

[b]Doget.jsp 提交后的 URL栏的内容 是什么?[/b]

你单步调试一下
Welcome 的doGet方法,看它是否正确执行了

你需要调试一下,在tomcat中记日志,看是否程序执行进了servlet。

visit: http://localhost:yourport/yourcontext/yourpage.jsp?user=dexia115

[color=blue][b]
改为以下试试( 加入flush)[/b][/color]
[code="java"] out.println("

[b]iso-8859-1 改为iso8859-1[/b]

你的代码肯定抛出异常了,在tomcat日志中看一下就会发现。

user=new String(user.getBytes("iso-8859-1"));

改成

user=new String(user.getBytes("iso-8859-1"), "GBK");

应该是这行代码抛出异常了,
user=new String(user.getBytes("iso-8859-1"));

你打印一下得到的user参数

String user=request.getParameter("user");
[color=red]System.out.println(user);[/color]
user=new String(user.getBytes("iso-8859-1"));

[b]错误在这(少了个括号!!!):[/b]

[code="java"] out.println("

out.println("WelcomePage页面");
out.println("");[/code]

[code="java"]PrintWriter out=response.getWriter();
String user=request.getParameter("user");
user=new String(user.getBytes("iso-8859-1"));

String WelcomeInfo="欢迎访问本网站"+user;
out.println("");
out.println("

");
out.println(" out.println("WelcomePage页面");
out.println("");
out.println("");
out.println("");
out.println("
");
out.println(""+WelcomeInfo+"");
out.println("
");
out.println("");
out.println("");
out.close();[/code]

把上面这段换成

[code="java"] out.println("aaaa");[/code]

先确认是否程序找到这个servlet

换成

[code="java"]PrintWriter out=response.getWriter();
out.println("aaaa"); [/code]