2014-04-30 82 views
0

heloo我想寫一些從我的servlet到jsp文件。我做到了使用的RequestDispatcher,但結果並沒有出現從Servlet寫入值到JSP

這裏是代碼:

UserInfo.java

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = null; 
     Connection conn = null; 
     DBUtils dbUtils = null; 
     try{ 
      out = response.getWriter();  
      String username = null; 
      String password = null; 

      //setting cookies for session 
      Cookie[] cookies = request.getCookies(); 
      if (cookies != null) { 
       for (Cookie cookie : cookies) { 
       if(cookie.getName().equals("username")) 
        username = cookie.getValue(); 
      } 
      } 

      request.setAttribute("username", username); 
      request.getRequestDispatcher("userinfo.jsp").forward(request, response); 

userinfo.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>JSP Page</title> 
    </head> 
    <body> 
     <h1>Hello ${username}</h1> 
    </body> 
</html> 
+0

請你能否解釋一下'結果沒有appear' ?你是否重定向到你請求的頁面(ie)'userinfo.jsp' –

+0

$ {username} theres什麼都沒有 – user2513301

+0

我使用ajax重定向喲userinfo.jsp – user2513301

回答

0

嘗試在你的js中使用request.getAttribute("username") p幷包含它<%%>標記。

+1

仍什麼都沒有出現 – user2513301

+0

嘗試在你的jsp中打印任何東西,它是否顯示?可能是你的目錄有問題。 – renz

0

試試這個..

ServletContext context= getServletContext(); 
RequestDispatcher rd= context.getRequestDispatcher("/userinfo.jsp"); 
rd.forward(request,response); 

注意區別時,我使用/userinfo.jsp ..用它來提供JSP位置的絕對路徑。如果沒有前面的「/」,它將被視爲相對路徑並將userinfo.jsp附加到現有的請求相對路徑。

,或者如果上述方法無效重寫此行使用absoulute路徑

request.getRequestDispatcher("/userinfo.jsp").forward(request, response); 
0

使用在你的JSP沒有必要重複

${cookie.username.value}