簡體   English   中英

如何從Servlet重定向到JSP文件

[英]How to redirect to a JSP file from Servlet

我是一個初學者,正在嘗試了解如何從Servlet重定向到JSP文件。 我的Servlet在收到當前JSP文件的回復后“生成”結果,因此我想將其傳遞給另一個JSP文件。 我知道有一行代碼:

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

但是,我是否為此創建單獨的方法並在doGET中調用它?

你可以做

   protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      request.getRequestDispatcher("/upload.jsp").forward(request, response);
    } 

即使您創建了一個method seperately您需要的requestresponse對象的method

我強烈推薦官方文檔:

http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html

畫報

如果您使用帶有注解的3.0版,則重定向非常簡單。

假設您有一個User類(帶有setter和getter的Strings fullname和Username字符串)和一個處理數據庫操作的UserDAO類。 假設這是您的控制器:

@RequestMapping(value = "/user_list")
public String users(HttpServletResponse response, HttpServletRequest request)
{
    //some function to verify access
    boolean authorized = client.getAccess(); 
    request.setAttribute("authorized", authorized);

    if (authorized)
    {
        List<User> users = UserDAO.geUsers();

        request.setAttribute("users", users);
        return "user_list";
    }
    else
    {
        return "access_denied";
    }
}

然后,您可以使用以下語法從任何位置重定向

@RequestMapping(value = "/create_user", method = RequestMethod.POST)
public String add_user(HttpServletResponse response, HttpServletRequest request)
{

    boolean authorized = client.getAccess();
    if (authorized)
    {
        User user = new User();

            user.setUserName(request.getParameter("username"));
            user.setFullName(request.getParameter("fullname"));

        if (UserDAO.saveUser(user))
        {
            return "redirect:/user_list";
        }
        else
        {
            return "error";
        }
    }
    else
    {
        return "access_denied";
    }
}

redirect:/ user_list將返回更新的user_list(例如,如果您要插入db,則更改將被反映)。

順便說一句:如果在xml中添加幾行,則可以在控制器中刪除.jsp和路徑:

http://www.mkyong.com/spring-mvc/spring-3-mvc-and-xml-example/

看看那些教程:

http://www.javatpoint.com/spring-3-mvc-tutorial

http://www.javatpoint.com/servlet-tutorial

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM