java--重定向/转发
来源:互联网 发布:python登录文件夹帐号 编辑:程序博客网 时间:2024/06/16 04:29
转发:
共用req,resp,所以可以在里面封装数据
只能站内实现,无法站外实现
通过req
请求的地址:/jsps/result.jsp
重定向:
浏览器请求两次,服务器应答两次,两次的req,resp不同,无法共享
通常站外实现(站内实现共享则需要传参)
通过resp:
请求的地址:/helloWeb/jsps/result.jsp
主页index.xml
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><html> <head> <title>第一个web项目的主页</title> </head> <body> <h2>主页主页</h2> <h2>湖南长沙</h2> <h3>发布方式一......</h3> <br/> <h2>演示重定向/转发</h2> <a href="jsps/result.jsp">超链接</a><!-- 后台控制不了 --><br/><br/> <a href="redirect">重定向/转发</a><br/><br/> </body></html>
RedirectServlet .java
package cn.hncu.servlet;import java.io.IOException;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class RedirectServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {// req.getHeader("Referer"); //转发--共享req,resp req.setAttribute("name", "jack");//getAttribute获取 //重定向--两次的req不一样(用传参)用getParament获取 //下面resp.sendRedirect( "/helloWeb/jsps/result.jsp?name=jack"); //通过设置http协议的响应头实现重定向 //由服务器找到/helloWeb/jsps/result.jsp的位置,返回给浏览器,浏览器再次拿着这个目录再次请求 //方法一:底层的协议技术设置状态码// resp.setStatus(302);//HttpServletResponse.SC_FOUND// resp.setHeader("Location", "/helloWeb/jsps/result.jsp"); //方法二:用函数内部设置状态码// resp.sendRedirect( "/helloWeb/jsps/result.jsp");// resp.sendRedirect( "/helloWeb/jsps/result.jsp?name=jack"); //转发--分发器 //由服务器在当前项目下找到/jsps/result.jsp,再响应 RequestDispatcher rd=req.getRequestDispatcher("/jsps/result.jsp"); rd.forward(req, resp); }}
注意:转发是由servlet帮忙转发的,在项目内部,所以请求地址只需要”/jsps/result.jsp”就可以了
但是重定向是servlet响应浏览器,再由浏览器向拿着响应回来的地址信息去向服务器进行第二次请求,所以请求地址要详细,否则浏览器找不到想要的信息”/helloWeb/jsps/result.jsp”
可以看出重定向和转发相差一个项目根目录
配置文件web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name></display-name> <servlet> <servlet-name>RedirectServlet</servlet-name> <servlet-class>cn.hncu.servlet.RedirectServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>RedirectServlet</servlet-name> <url-pattern>/redirect</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list></web-app>
1 0
- java--重定向/转发
- java 转发重定向
- java转发和重定向
- java 重定向和转发
- JAVA 重定向与转发
- 【java基础】转发&&重定向
- java Web 转发 重定向
- 【Java】转发与重定向
- java 重定向 和 转发
- Java转发与重定向
- java 转发和重定向
- Java重定向与转发
- java中的转发,重定向
- java 重定向和转发的区别
- java web的转发与重定向
- java 重定向和转发的区别
- java 重定向和转发的区别
- java 重定向和转发的区别
- 自定义控件View(一)
- undefined reference to 错误的解决方法总结
- shell命令-cut
- 校招の如何写简历
- sscanf()函数
- java--重定向/转发
- Ubuntu12.04 安装django
- H5 滚动标签 marquee
- <context:component-scan>使用说明
- Array.Sort
- tomcat 监控优化
- poj 2528 Mayor's posters
- 海量数据笔试题汇总
- [从头学数学] 第285节 [计算几何] 区域划分