java后端页面跳转怎么操作?直接跳转怎么操作?

BSO 2020-09-03 10:55:33 java常见问答 3821

自从20世纪90年代以来。java编程语言的发展如火如荼,日益壮大。这也吸引了更多的青年学子投入到java的学习与使用中来。我们今天主要来看一下java的一些基础知识点,也就是java后端页面跳转如何操作,想要直接跳转又该如何操作,通过实际的代码为大家展示。

首先我们需要了解的是,在java中,后端页面跳转分类有两种:重定向和转发,即redirect和forward。接下来我们分别展示一下具体操作方法。

1.重定向redirect:

方法1.controller中返回值为string,代码如下:

public String login(HttpServletRequest req, HttpServletResponse resp)
return "redirect:http://localhost:8080/index";

方法2.controller中返回值为void,代码如下:

public void login(HttpServletRequest req, HttpServletResponse resp)
resp.sendRedirect("http://localhost:8080/index");

方法3.controller中返回值为ModelAndView,代码如下:

return new ModelAndView("redirect:/toList");

2.转发forward,代码如下:

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

接下来我们再来看一下直接跳转页面的具体操作流程,代码如下:

public static String genForwardHtml(String url, Map < String, String > parameters, String charset)
{
    StringBuffer returnHtml = new StringBuffer("");
    if (!"".equals(url))
    {
        returnHtml.append("<html>");
        String head = "<head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=" + charset +
            "\" pageEncoding=\"" + charset + "\" />";
        returnHtml.append(head);
        returnHtml.append("<title>loading</title>");
        returnHtml.append("<style type=\"text/css\">");
        returnHtml.append(
            "body{margin:200px auto;font-family: \"宋体\", Arial;font-size: 12px;color: #369;text-align: center;}");
        returnHtml.append("#1{height:auto; width:78px; margin:0 auto;}");
        returnHtml.append("#2{height:auto; width:153px; margin:0 auto;}");
        returnHtml.append("vertical-align: bottom;}");
        returnHtml.append("</style>");
        returnHtml.append("</head>");
        returnHtml.append("<body>");
        returnHtml.append("<div id=\"3\">交易处理中...</div>");
        returnHtml.append("<form name=\"forwardForm\" action=\"")
            .append(url)
            .append("\" method=\"POST\">");
        System.out.println("WebUtils genForwardHtml::url=" + url);
        Iterator keyIterator = parameters.keySet()
            .iterator();
        while (keyIterator.hasNext())
        {
            Object key = keyIterator.next();
            returnHtml.append("  <input type=\"hidden\" name=\"")
                .append(key.toString())
                .append("\" value=\"")
                .append((String) parameters.get(key))
                .append("\"/>");
            System.out.println("WebUtils genForwardHtml::" + key.toString() + "=" + parameters.get(key));
        }
        returnHtml.append("</form>");
        returnHtml.append("<SCRIPT LANGUAGE=\"Javascript\">");
        returnHtml.append("    document.forwardForm.submit();");
        returnHtml.append("</SCRIPT>");
        returnHtml.append("</body>");
        returnHtml.append("</html>");
    }
    return returnHtml.toString();
}

上述内容就是概述如何在java中实现后端页面跳转以及如何做到直接页面跳转,并且通过实际的代码为大家展示出来。如果你对java的知识感兴趣,想要了解更多java基础常见问题,敬请关注奇Q工具网。

推荐阅读:

java servlet中forward和redirect的不同点,具体说明

java对象类型转换,向上转型和向下转型详细介绍

在java中this有哪些功能,它和super的异同在哪?