我的servlet代码:
public class isValidate extends HttpServlet {
public void init() { } public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/plain; charset=utf-8");
PrintWriter out = res.getWriter();
String filepath ;
String filename;
filename = req.getParameter("radio");
if(filename==null)
out.println("<script>alert('请选择要验证的文件')</script>");
filepath = getServletContext().getRealPath("/")+"sig\\data\\idl\\"+filename;

/*
 * 下面调用idlj对idl文件进行检测
 */
String temp = getServletContext().getRealPath("/")
+ "sig\\data\\temp\\"; // idlj生成文件的临时存放路径;
try {
String command = "idlj -td " + temp + " " + filepath;
Process process = Runtime.getRuntime().exec(command);
BufferedReader reader = new BufferedReader(new InputStreamReader(
process.getErrorStream()));
String line = null;
String mess = "";
boolean err = true;
while ((line = reader.readLine()) != null)
{mess+=line+"\r"; err=false;}
process.waitFor();
reader.close();
process.destroy();
// File tempFile = new File(temp);
// tempFile.delete();
if(err)
out.println("<script>alert('恭喜,文件通过语法验证!');top.main.location.href='syntaxAnalysis.jsp';</script>");
else {
req.setAttribute("message", mess);
getServletConfig().getServletContext().getRequestDispatcher("/display.jsp").forward(req, res); //servlet跳转
}


} catch (Exception e) {
e.printStackTrace();
}
out.close(); }// doGet

public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
doGet(req,res);
}
}
==========================
其中跳转语句为:
req.setAttribute("message", mess);
getServletConfig().getServletContext().getRequestDispatcher("/display.jsp").forward(req, res); //servlet跳转
//直接getServletContext().getRequestDispatcher("/display.jsp").forward(req, res); 也不行
==========================
PS:每次保存完之后,res.setContentType("text/plain; charset=utf-8");这一行总是被eclipse编译成灰底色。是不是和这个有关系?
PS2:这个servlet和目标jsp页面display.jsp都是在top.main这个frame中的!同一个frame中,应该没有关系吧?! 另:我在地址栏直接输入servlet的地址(保开frame框架了),还是不能跳转!