有两个页面,一个是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页面");[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(""+WelcomeInfo+""); out.println(" |
把上面这段换成
[code="java"] out.println("aaaa");[/code]
先确认是否程序找到这个servlet
换成
[code="java"]PrintWriter out=response.getWriter();
out.println("aaaa"); [/code]