页面跳转的两种方式:转发和重定向
理论参考https://blog.csdn.net/xybelieve1990/article/details/49486751这篇文章
1 Servlet、location和状态吗302一起完成重定向
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 和location和302一起完成重定向 * @author Administrator * */ public class ServletDmo1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 向页面输出内容 response.setContentType("text/html;charset=UTF-8"); // response.getWriter().write("向班长借钱..."); // 班长没钱 response.setStatus(302); // 班长告诉我副班长的地址(重定向都是客户端的,带项目名) response.setHeader("location", "/day09/1.html"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
项目day09/1.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h3>1.html的相对路径</h3> <a href="./demo5">demo5</a> <a href="demo5">demo5</a> <h3>1.html的绝对路径</h3> <a href="http://localhost/day09/demo5">demo5</a> <a href="/day09/demo5">demo5</a> </body> </html>
demo5是通过配web.xml置文件与反射技术跳转到ServletDemo5
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 配置servlet启动时加载 * @author Administrator * */ public class ServletDemo5 extends HttpServlet { /** * 默认的情况下第一次访问的时候init被调用。 * */ public void init() throws ServletException { System.out.println("init..."); // 初始化数据库的链接 } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 写的内容 // 获取表单输入的内容 // 自己逻辑,通过名称查询数据库,把张三的姓名查到了 // 把张三返回浏览器, //向控制台输出结果 System.out.println("doGet..."); // 向页面输出内容 response.getWriter().write("hello demo5..."); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } }
2 页面的定时跳转
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 页面定时跳转 * @author Administrator * */ public class RefreshServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("访问到了..."); // 页面5秒会跳转到ServletDmo1 response.setHeader("refresh", "5;url=/day09/1.html"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }