首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Servlet重定向到JSP文件

如何从Servlet重定向到JSP文件
EN

Stack Overflow用户
提问于 2013-04-24 00:08:07
回答 2查看 5.7K关注 0票数 2

我是一个初学者,正在尝试理解如何从Servlet重定向到JSP文件。我的Servlet在收到来自当前JSP文件的回复后“生成”一个结果,并希望将该结果传递给另一个JSP文件。我知道有一行代码:

代码语言:javascript
复制
request.getRequestDispatcher("/upload.jsp").forward(request, response);

但是,我是否应该为此创建一个单独的方法并在doGET中调用它呢?

EN

回答 2

Stack Overflow用户

发布于 2013-04-24 00:13:28

你可以做到

代码语言:javascript
复制
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      request.getRequestDispatcher("/upload.jsp").forward(request, response);
    } 

即使您单独创建了一个method,您仍然需要methodrequestresponse对象。

我强烈推荐官方文档:

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

票数 4
EN

Stack Overflow用户

发布于 2013-04-24 00:37:44

如果你使用的是带有注解的3.0版本,那么重定向非常简单。

假设您有一个User类(带有setter和getter的String、fullname和Username )和处理数据库操作的UserDAO类。假设这是你的控制器:

代码语言:javascript
复制
@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";
    }
}

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

代码语言:javascript
复制
@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";
    }
}

重定向:/ user_list将返回更新的user_list(例如,如果您插入到数据库,您的更改将被反映出来)。

顺便说一下:如果向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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16174190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档