首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    转发与重定向的区别

    重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL,而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,不再是同一个请求,(很多人说使用域对象传值用转发不用重定向是因为重定向不带参数我认为那种说法是有问题的)所以经过一次重定向后,request内的对象将无法使用。

    02

    重定向和转发的区别及应用[通俗易懂]

    重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。在客户浏览器路径栏显示的是其重定向的路径,客户可以观察到地址的变化的。重定向行为是浏览器做了至少两次的访问请求的。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。

    02

    getRequestDispatcher 和sendRedirect区别

    getRequestDispatcher是服务器内部跳转,地址栏信息不变,只能跳转到web应用内的网页。 sendRedirect是页面重定向,地址栏信息改变,可以跳转到任意网页。 这两条网上都查得到,但看着比较乱,现提供我测试的结果(仅供参考): 1.getRequestDispatcher分成两种,可以用request调用,也可以用getServletContext()调用 不同的是request.getRequestDispatcher(url)的url可以是相对路径也可以是绝对路径。 而this.getServletContext().getRequestDispatcher(url)的url只能是绝对路径。 个人认为跳转页面的方式和原网页相同,如果转发之前为get方式,则该页面接受依然为doGet获取,post类似。 还有一点需要注意,getRequestDispatcher语句后的代码会在调用之后继续执行,但是sendRedirect之后的语句是在跳转之前执行的。

    01

    SpringBoot当中如何整合动态html模板:Thymeleaf

    4.整合动态html模板:Thymeleaf: 光是静态html还不足够,必须html还能显示动态成分,这时我们考虑使用thymeleaf,就能完全达到springmvc的水平了,官方推荐thymeleaf。继续在上一部分的项目中,在src/main目录下,添加resources/templates/result.html:(参考目录下:bootThymeleaf) 例4.1: 1)首先在pom.xml中添加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 注意:即使导了上面的包,也没有办法访问到resources根目录下的html。至于templates目录下的html,直接或sendRedirect都不能访问。唯有用下面的方法访问。 package com.SpringbootMaven; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @SpringBootApplication public class App { @RequestMapping("/hello") public String myhome(HttpServletResponse res,HttpSession session) throws IOException { System.out.println("spring boot springMvc 马克-to-win!"); session.setAttribute("user","马克-to-win 马克java社区创始人"); return "result"; /*下列不能再用了,在Thymeleaf框架中,sendRedirect不能跳到templates目录里的html*/ // res.sendRedirect("result.html"); } public static void main(String[] args) throws Exception { SpringApplication.run(App.class, args); } } index.html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> index1 test SpringMvc </body> </html>

    00
    领券