【问题标题】:redirecting jsp page from servlet从servlet重定向jsp页面
【发布时间】:2013-05-27 07:07:59
【问题描述】:

这里我想使用RequestDispatcher从servlet调用jsp页面,问题是在jsp代码中调用java代码没问题,问题是html代码不起作用

代码如下:

RedirectServlet.java:

  protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
        {               
        System.out.println("calling doPost() ");
    response.setHeader("Pragma", "No-cache");
    response.setHeader("Cache-Control","no-store"); //HTTP 1.1
    response.setDateHeader("Expires", 0);
    response.setHeader("Cache-Control", "no-cache");
    response.setContentType("text/html;charset=WINDOWS-1256");
    String action=request.getParameter("action");
    System.out.println(action);

    if(action.equals("reports")){
        System.out.println("inside reports");



        //Getting values from Reports_arb.jsp
        String Fromdate=request.getParameter("FD");
        String Todate=request.getParameter("TD");
        String status=request.getParameter("actionid");
        String usercode=request.getParameter("usercode");

        //placing given values in a session 


        request.setAttribute("FD", Fromdate);
        request.setAttribute("TD", Todate);
        request.setAttribute("actionid", status);
        request.setAttribute("usercode", usercode);


        //Redirecting to showReport_arb.jsp
        //response.sendRedirect("showReport_arb.jsp");

          ServletContext sc = getServletContext();
          sc.getRequestDispatcher("/showReport_arb.jsp").forward(request, response);


    }

showReportt_arb.jsp:

  <HTML dir="rtl">
 <HEAD>
 <%@ page 
 language="java" import="java.sql.*"
 contentType="text/html; charset=WINDOWS-1256"
 pageEncoding="WINDOWS-1256"
 isThreadSafe="true"
 autoFlush="true"
 import        ="com.iton.eoffice.WorkflowManagement.*,com.iton.eoffice.contentmanager.*,com.iton.eoffice.authentica       tion.*,com.iton.eoffice.*"
  import   ="java.sql.*,java.util.GregorianCalendar,java.util.Calendar,java.util.Vector,java.text.DateFormat,jav      a.text.SimpleDateFormat"
 %>

 <%
  response.setHeader("Pragma", "No-cache");
  response.setHeader("Cache-Control","no-store"); //HTTP 1.1
  response.setDateHeader("Expires", 0);
   response.setHeader("Cache-Control", "no-cache");
  %> 
 ...
 ...
 <script language="JavaScript">
function formatTable(oTable)
 {
var rows=document.all(oTable).rows;
 for(var i=1;i<rows.length;i++)
{
if(i%2==0) 
{
  for(var j=0;j<rows[i].cells.length;j++)
  {
    rows[i].cells[j].style.backgroundColor = "#FFFFFF";
    rows[i].cells[j].style.borderTop="1 solid #FFFFFF";
    rows[i].cells[j].style.borderBottom="1 solid #FFFFFF";
    rows[i].cells[j].style.color = "#000000";
  }
} 
...
...
</script>
  ....
 <%
  ...

 System.out.println("From Date is"+FD);
 out.println("welcome to showreports_arb.jsp"); 
 String dtArray[]=FD.split("-");
  FD=dtArray[1]+"-"+dtArray[0]+"-"+dtArray[2];....
 .....
%>
 .....
 .....
 ......

 <TABLE align="center">
                        <TR>
                             <TD class="set"><input type="button"        class="SETARB" value="ØÈÇÚÉ ÇáÊÞÑíÑ" style="width:80px"  onclick="printPage()"></TD>

                            <TD class="set"><input type="button"       class="SETARB" value="ÎÑæÌ" style="width:80px" onclick="closePage()"></TD>
                        </TR>
                    </TABLE>
   <TABLE width="100%" style="border:0px solid #BFBDBA;text-align:center;" align="center">
 ......
 ...
 ..
  </html>

在上面的逻辑中,java代码在服务器控制台中显示,但没有显示html代码。请帮我解决这个问题

【问题讨论】:

  • 也许 html 是在一个 scriplet 中?你能把剩下的jsp页面贴出来吗?
  • @clav 感谢您的回复。刚才我更新了代码,请检查一次。这里我在脚本中写了 out.println 语句,但它没有显示在浏览器中。我认为它是内容编码问题所以请检查一次并解决我的问题。

标签: jsp servlets


【解决方案1】:

最好让用户尝试 catch 块。可能是如果抛出异常,则没有捕获块来捕获异常,因此jsp可能无法呈现。

【讨论】:

    猜你喜欢
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多