`
taotaogo1980
  • 浏览: 84219 次
社区版块
存档分类
最新评论
阅读更多

        res.sendRedirect()=重定向     forward(req,res)=转发
    重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新页面的URL, 而当使用转发时,该URL会保持不变。重定向的速度比转发慢,因为浏览器还得发出一个新的请求。同时,由于重定向方式产生了一个新的请求,所以经过一次重定向后,request内的对象将无法使用。
怎么选择是重定向还是转发呢?通常情况下转发更快,而且能保持request内的对象,所以他是第一选择。但是由于在转发之后,浏览器中URL仍然指向开始页面,此时如果重载当前页面,开始页面将会被重新调用。如果你不想看到这样的情况,则选择转发。

转发和重定向的区别
不要仅仅为了把变量传到下一个页面而使用session作用域,那会无故增大变量的作用域,转发也许可以帮助你解决这个问题。
重定向:以前的request中存放的变量全部失效,并进入一个新的request作用域。
转发:以前的request中存放的变量不会失效,就像把两个页面拼到了一起。



res.sendRedirect的用法:res.sendRedirect("123.jsp?name=123")
            接收参数时用req.getparameter("name")
req.getRequestDispatcher的用法:
           req.setAttribute("clobal",vclobal);
           req.getRequestDispatcher("balsearch.jsp").forward(req,rep);
           接收参数时用
           request.getAttribute("clobal");


一般getAttribute获得是一个对象,转换成String时用
(String) request.getAttribute("clobal")


将int转换成String用String r=String.valeOf(x);

 
 
0
0
分享到:
评论

相关推荐

    投票系统,基于mvc开发,jsp+servlet+mysql

    req.getRequestDispatcher("/err.jsp").forward(req, resp); return; } else if ("delete".equals(action)) { String gid = req.getParameter("gid"); int gidNumber = Integer.parseInt(gid); ...

    表单重复提交问题1

    action=list").forward(req, resp);` 这行代码表示在服务器端接收到表单请求后,不直接返回响应给客户端,而是将请求转发到另一个资源(这里是列出图书的Servlet)。这种方式可以防止浏览器重定向,避免了F5刷新...

    jsp中过滤器选择过滤器的写法详解.docx

    在Java Web开发中,JSP(JavaServer Pages)常常与Servlet和过滤器(Filter)结合使用,以实现更复杂的业务逻辑和控制流程。过滤器在请求到达目标资源(如JSP页面或Servlet)之前和之后执行,可以用来进行权限验证、...

    servlet与filter实现登录认证

    request.getRequestDispatcher("loginForm.jsp").forward(request, response); // 重新显示登录表单并显示错误消息 } } private boolean isValidUser(String username, String password) { // 这里应实现实际...

    用户登陆,Filter(过滤器)

    request.getRequestDispatcher("loginForm.jsp").forward(request, response); } } } ``` 接下来,我们引入Filter。Filter在Servlet容器中拦截请求和响应,允许在请求到达目标Servlet或响应返回给客户端之前进行...

    servlet配置.docx

    例如,req.getRequestDispatcher(URI).forward(req, resp); 2. 重定向 重定向是一种客户端的跳转,浏览器会收到一个新的 URL,浏览器的地址栏会改变。在重定向过程中,服务器会将请求重定向到另外一个 URL,浏览器...

    jsp 登录servlet

    request.getRequestDispatcher("error.jsp").forward(request, response); } } private boolean isValid(String username, String password) { // 这里通常连接数据库进行验证,这里简化为硬编码 return ...

    JavaWeb中URL重写用Forward方式并使其后filter可以拦截内部转发

    dispatcher.forward(request, response); } ``` 在这个过程中,由于`forward()`是服务器端的转向,所以请求会经过Filter,即使URL未发生变化,Filter依然能够捕获并处理请求。这就是在JavaWeb中使用`Forward`方式...

    java web servlet实例

    dispatcher.forward(req, resp); // 转发 resp.sendRedirect("/newLocation"); // 重定向 ``` 6. **会话管理** `HttpServletRequest`提供了管理用户会话的方法,如`getSession()`创建或获取会话,`setAttribute...

    SERVLET基本原理

    SERVLET 可以使用 response.sendRedirect(path) 或 request.getRequestDispatcher(path).forward(req,res) 方法来实现页面转发。 Servlet 的生命周期是 SERVLET 的核心概念,理解 SERVLET 的生命周期是非常重要的。...

    jsp课堂笔记2

    例如,使用`RequestDispatcher`的`forward()`方法:`request.getRequestDispatcher("req2.jsp").forward(request, response)`。转发保持了请求的上下文,之前的request、session中的数据仍然可用。 在JSP中,符号...

    JSP面试题及答案借鉴.pdf

    forward可以使用request.getRequestDispatcher("转发路径").forward(request, response);实现,而redirect可以使用response.sendRedirect("重定向的路径")实现。 5. JSP内置对象和作用 JSP有九个内置对象:request...

    javaWeb使用验证码实现简单登录

    req.getRequestDispatcher("login.jsp").forward(req, resp); } } } ``` success.jsp页面的实现 success.jsp页面用于显示登录成功的信息。其代码如下所示: ```jsp <h1>succ1 String username=(String)session....

    jsp解析

    rd.forward(request, response); ``` - **重定向**(Redirect):服务器告诉浏览器去访问另一个地址,浏览器地址栏中的URL会发生变化。这种方式不会保留原始请求数据。 ```java response.sendRedirect("welcome...

    用户信息系统(Servlet和JSP实现).docx

    - `req.getRequestDispatcher("/资源路径").forward(req, resp);`:将请求转发到指定资源。 - **重定向**:客户端行为,用于将请求重定向到一个新的URL。重定向后客户端浏览器地址栏中的URL会发生变化。 - `resp....

    JavaWeb知识点总结

    - **转发**(服务器端跳转):使用`request.getRequestDispatcher().forward()`实现,地址栏不会改变,请求和响应对象可以跨页面传递,且转发后可以连续传递。执行到`forward()`后,后续代码不再执行。 - **重定向...

    Spring mvc结果跳转方法详解

    req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp); } } ``` 在上面的代码中,我们使用了 HttpServletResponse 对象来实现输出、重定向和转发。 三、使用 Spring MVC annotation Spring MVC ...

    面试题~~面试官喜欢问的~~

    - **Forward**: 当使用 `request.getRequestDispatcher("url").forward(request, response);` 进行转发时,客户端浏览器的地址栏不会发生变化,请求是在服务器端内部完成的。这意味着转发后页面仍然处于同一个请求...

    java技术面试-----------javaWeb.md

    - 示例:`request.getRequestDispatcher("success.jsp").forward(request, response);` - **重定向**:服务器通知客户端重新向另一个地址发起请求。客户端会发出两次请求,并且地址栏中的URL会发生变化。 - 示例:...

    servlet

    - `service(ServletRequest req, ServletResponse res)`: 处理请求的核心方法,可以被多次调用。 - `destroy()`: 清理资源的方法,仅在Servlet销毁前调用一次。 - `getServletConfig()`: 获取当前Servlet的配置...

Global site tag (gtag.js) - Google Analytics