编译通过了,然后放进去后发现只实现了前半个功能,各位达人能否帮忙改一下,小弟在此感激不尽!import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class PublicAsk extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long lastmodify=new File("fz.jpg").lastModified(); String addrFrom = request.getParameter("addrFrom");
String addrTo = request.getParameter("addrTo");
String msg = addrFrom + " " + addrTo;
BufferedWriter out = new BufferedWriter(new FileWriter("addr.txt"));
out.write(msg);
out.close();//这一段都没问题 int count = 0;
PrintWriter output = response.getWriter();
while(count < 10){
long l=new File("fz.jpg").lastModified()-lastmodify;
if(l!=0)break;
output.println("waiting...");//页面上没显示,不知道提示是不是这样输出的?
count++;
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
}
if(count == 10){
output.println("Timeout!");
try {
Thread.sleep(300);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
request.getRequestDispatcher("/public.jsp").forward(request, response);//超时返回
}
else{
request.getRequestDispatcher("/showmap.jsp").forward(request,response);//没超时跳转一个显示图片的网页
}
}
}
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class PublicAsk extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long lastmodify=new File("fz.jpg").lastModified(); String addrFrom = request.getParameter("addrFrom");
String addrTo = request.getParameter("addrTo");
String msg = addrFrom + " " + addrTo;
BufferedWriter out = new BufferedWriter(new FileWriter("addr.txt"));
out.write(msg);
out.close();//这一段都没问题 int count = 0;
PrintWriter output = response.getWriter();
while(count < 10){
long l=new File("fz.jpg").lastModified()-lastmodify;
if(l!=0)break;
output.println("waiting...");//页面上没显示,不知道提示是不是这样输出的?
count++;
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
}
if(count == 10){
output.println("Timeout!");
try {
Thread.sleep(300);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
request.getRequestDispatcher("/public.jsp").forward(request, response);//超时返回
}
else{
request.getRequestDispatcher("/showmap.jsp").forward(request,response);//没超时跳转一个显示图片的网页
}
}
}
解决方案 »
- 关于java Map containsValue的问题,紧急求助
- 项目启动报错ClassNotFoundException,请帮忙,谢谢
- sql server连接池请问用jtds还是microsoft sqlserver好?
- 谁有iText的语言包iTextAsian.jar
- 高分请教:回答一位初学者的疑惑
- 哪里有java的混乱器啊,jdk1.4以上版本使用的
- 如何用java调用word?来者给分!·!!!!!
- 在javascript中如何刷新页面?在线等待
- 怎么比较变量啊???大家多多给方法啊??
- 我用jdk1.3编译一个Servlet,可找不到javax.servlet.*;为什么?该如何解决?
- .NET好找工作还是JAVA好找工作些
- javamail问题,请高手赐教
output.println("waiting...");
output.println("Timeout!");
应该显示在什么地方。另外,如果你不打算forward,则应该有output.flush();output.close();这样的语句。
这会将你上面的println()直接返回给客户端。注意,这不算是一个完整的页面。因为没有<html><body>等标准元素。最后,你的代码估计达不到需要的效果。可能的结果是,一次性返回多个"waiting..."给客户端,而不是逐个返回。
从我的估计来看,也需要使用ajax才能达到你想要的效果。
要等这个servlet执行完后页面才会有反应的,而你的执行完后又跳到另外一个地方去了,那就看不到了
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class PublicAsk extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long lastmodify=new File("fz.jpg").lastModified(); String addrFrom = request.getParameter("addrFrom");
String addrTo = request.getParameter("addrTo");
String msg = addrFrom + " " + addrTo;
BufferedWriter out = new BufferedWriter(new FileWriter("d:/addr.txt"));
out.write(msg);
out.close(); int count = 0;
response.setContentType("text/html");
PrintWriter output = response.getWriter();
output.println("<html>");
output.println("<head>");
output.println("<title>TestPage</title>");
output.println("</head>");
output.println("<body>");
output.println("<h1>waiting...</h1>");
output.println("</body>");
output.println("</html>");
while(count < 10){
long l=new File("fz.jpg").lastModified()-lastmodify;
if(l!=0)break;
// output.println("waiting...");
count++;
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
}
if(count == 10){
output.println("<html>");
output.println("<head>");
output.println("<title>TestPage</title>");
output.println("</head>");
output.println("<body>");
output.println("<h1>Timeout!</h1>");
output.println("</body>");
output.println("</html>");
try {
Thread.sleep(300);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
request.getRequestDispatcher("/public.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("/showmap.jsp").forward(request,response);
}
}
}现在写成这样……但是一点提交,跳转到public页面,然后里面的静态文本全部变成“??”了……怎么回事……
中文问题稍微复杂一点,你可以试试request.setCharacterEncoding("gb2312")方法
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class PublicAsk extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long lastmodify=new File("fz.jpg").lastModified(); request.setCharacterEncoding("gb2312");
String addrFrom = new String(request.getParameter("addrFrom").getBytes("iso-8859-1"),"gbk");
String addrTo = new String(request.getParameter("addrTo").getBytes("iso-8859-1"),"gbk");
// String addrFrom = request.getParameter("addrFrom");
// String addrTo = request.getParameter("addrTo");
String msg = addrFrom + " " + addrTo;
BufferedWriter out = new BufferedWriter(new FileWriter("d:/addr.txt"));
out.write(msg);
out.close(); int count = 0;
response.setContentType("text/html;charset=GB2312");
PrintWriter output = response.getWriter();
output.println("<html>");
output.println("<head>");
output.println("<title>TestPage</title>");
output.println("</head>");
output.println("<body>");
output.println("<h1>waiting...</h1>");
output.println("</body>");
output.println("</html>");
while(count < 10){
long l=new File("fz.jpg").lastModified()-lastmodify;
if(l!=0)break;
// output.println("waiting...");
count++;
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
}
if(count == 10){
output.println("<html>");
output.println("<head>");
output.println("<title>TestPage</title>");
output.println("</head>");
output.println("<body>");
output.println("<h1>Timeout!</h1>");
output.println("</body>");
output.println("</html>");
try {
Thread.sleep(300);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
request.getRequestDispatcher("/public.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("/showmap.jsp").forward(request,response);
}
}
}
一般的做法,是把提示信息放在jsp中:用request.setAttribute()存储内容,用标签(比如<c:out>,或者el表达式)取出来。
最好早上这个模块就能成功……然后给你结帐……能否帮忙看下这段代码……希望现在没什么问题了……
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;public class PublicAsk extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request,response);
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long lastmodify=new File("fz.jpg").lastModified(); request.setCharacterEncoding("gb2312");
String addrFrom = new String(request.getParameter("addrFrom").getBytes("iso-8859-1"),"gbk");
String addrTo = new String(request.getParameter("addrTo").getBytes("iso-8859-1"),"gbk");
// String addrFrom = request.getParameter("addrFrom");
// String addrTo = request.getParameter("addrTo");
String msg = addrFrom + " " + addrTo;
BufferedWriter out = new BufferedWriter(new FileWriter("d:/addr.txt"));
out.write(msg);
out.close(); int count = 0;
response.setContentType("text/html;charset=GB2312");
PrintWriter output = response.getWriter();
while(count < 20){
long l=new File("fz.jpg").lastModified()-lastmodify;
if(l!=0)break;
count++;
try {
Thread.sleep(100);
} catch (Exception e) {
// TODO Auto-generated catch block
System.err.println(e.toString());
}
}
if(count == 20){
output.println("<html>");
output.println("<head>");
output.println("<title>TestPage</title>");
output.println("</head>");
output.println("<body>");
output.println("<h1>Timeout!<a href=\"public.jsp\">Back</a></h1>");
output.println("</body>");
output.println("</html>");
}
else{
request.getRequestDispatcher("/showmap.jsp").forward(request,response);
}
}
}
你将getAbsolutePath()打出来看看,就知道应该增加多少个../
或者你可以直接写绝对路径"d:/tomcat/webapps/fz.jpg"