Python 官方文档:入门教程 => 点击学习
目录转发转发与页面跳转数据传递重定向重定向与页面跳转数据传递转发与重定向的区别转发和重定向总结:Servlet生命周期(四阶段)Servlet 生命周期转发 转发与页面跳转 转发 转
转发
页面跳转
调用业务逻辑的Servlet中,编写代码:
request.getRequestDispatcher("/目标URL-pattern").forward(request,response);
//跳转转发到login.jsp
req.getRequestDispatcher("login.jsp").forward(req,resp);
request作用域
存数据
以键值对的形式存储在request作用域中,key为String类型,value为Object类型JSP内置对象session和request都有这个方法
request.setAttribute(key,value);
取数据
通过String类型的key访问Object类型的value
request.getAttribute(key)
存取数据
//request作用域存储数据
req.setAttribute("admins",adminList);
//request作用取数据
request.getAttribute("admins");
重定向作用在客户端,客户端请求发送给服务器后,服务器响应给客户端一个新的请求地址,客户端重新发送新的请求
调用业务逻辑的Servlet中,编写代码:
// response.sendRedirect("目标URL");
resp.sendRedirect("index.jsp"); //重定向跳转到index.jsp页面
sendRedirect跳转时,地址栏发生改变,代表客户端重新发送请求,属于两次请求
传递数据
获取数据
//传递数据
resp.sendRedirect("/WEBProject_war_exploded/b?username=tom"); //传递数据为String类型,明文传递
//获取数据
String username = req.getParameter("username");
转发 | 重定向 |
转发使用的是getRequestDispatcher()方法 | 重定向使用的是sendRedirect()方法 |
浏览器URL的地址栏不变 | 浏览器URL的地址栏改变 |
转发是服务器行为 | 重定向是客户端行为 |
转发是浏览器只做了一次访问请求 | 重定向是浏览器做了至少两次的访问请求 |
转发2次跳转之间传输的信息不会丢失 | 重定向2次跳转之间传输的信息会丢失(request范围) |
重定向的第二个请求一定是GET |
当两个Servlet需要传递数据时,选择forward转发,不建议使用sendRedirect转发,因为sendRedirect是明文传递不安全
Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:
实例化
用户第一次访问Servlet是,由容器调用Servlet的构造器创建具体的Servlet对象,也可以启动容器后立刻创建实例,使用如下代码可以设置Servlet是否在服务器启动时就创建
初始化
初始化阶段,init()方法会被调用,这个方法在javax.servlet.Servlet接口中定义,其中,方法以一个ServletConfig类型的对象作为参数
服务
客户端有一个请求时,容器会将请求ServletRequest与响应ServletRequest对象转给Servlet,以参数的形式传给service方法
销毁
Servlet容器(Tomcat)停止或者重新启动(Tomcat)都会引起销毁Servlet对象并调用destroy方法
实例:
package com.woniu.servlet2;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
@WebServlet(value = "/ls")
public class LifeServlet implements Servlet {
public LifeServlet(){
System.out.println("1.实例化");
}
@Override
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println("2.初始化");
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("3.提供服务,接受请求,响应结果");
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
System.out.println("4.销毁");
}
}
重启或停止Tomcat即会输出销毁
到此这篇关于关于javaweb的转发和重定向详解的文章就介绍到这了,更多相关Javaweb的转发和重定向内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: 关于Javaweb的转发和重定向详解
本文链接: https://www.lsjlt.com/news/212703.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0