先说说JSP,想直接看转发和重定向的区别的同学可直接看最后。
JSP主要负责与用户交互,并将最终界面呈现 JSP=HTML+JS+CSS+Java
当服务器接收到后缀是jsp的请求时,会将该请求交给JSP引擎处理,每个JSP页面第一次被访问时,引擎会将它翻译成Servlet,再由Web容器调用Servlet完成响应,所以JSP本质就是Servlet。
如何将Java程序嵌入到HTML页面成为JSP呢? 1.脚本: <% 代码 %> 2.声明:<%! 声明%> 3.表达式:<%=Java变量%>
Request常用方法 1.String getParameter(String key) 获取从客户端传来的参数 2.void setAttribute(String key,Object object)通过键值对的形式保存数据 3.Object getAttribute(String key)通过key取出value 2和3是服务器内部传递数据 4.RequestDispatcher getRequestDispather(String path).forword(req,resp)返回一个RequestDispatcher对象,该对象用于转发请求 5.String[] getParameterValues()获取客户端传来的多个同名参数 与1类似 6.void setCharactEncoding(String charset)指定请求的编码
Request转发与Response重定向 转发:同一个请求在服务器内传递,地址栏不变,也叫服务器跳转 重定向:由客户端重新发一次全新的请求,地址栏会变,也叫客户端跳转
举个例子: 转发就像你给A客服打电话,A客服解决不了,直接把电话转接给了B客服,对于你来说,你只打了这一通电话,但对面的人却换了; 重定向就像你给A客服打电话,A客服解决不了,它直接把电话挂了叫你重新给B客服打,你打了两通电话。 因此转发是针对同一个请求,重定向新建了一个请求,之前的请求结束了生命周期。
tips: 如果两个页面之间需要request传值则必须使用转发