Discuss / Java / 使用重定向和转发

使用重定向和转发

Topic source

净净一隅

#1 Created at ... [Delete] [Delete and Lock User]

@WebServlet(urlPatterns="/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
// 构造重定向的路径:
String name = req.getParameter("name");
String redirectToUrl = "/hi" + ((name == null) ? "" : "?name=" + name);
// 发送重定向响应:
resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
resp.setHeader("Location", "/hello");
resp.sendRedirect(redirectToUrl);
}
}

@WebServlet(urlPatterns="/hi")
public class HiServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
// 构造重定向的路径:
String name = req.getParameter("name");
resp.setContentType("text/html");
PrintWriter pw=resp.getWriter();
pw.write("<h2>"+(name==null||name.length()==0?"nobody":"welcome,"+name)+"</h2>");
pw.flush();

}
}

@WebServlet(urlPatterns = "/morning")
public class ForwardServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//转发到hello路径,并带上req\resp对象
req.getRequestDispatcher("/hello").forward(req,resp);
}
}


  • 1

Reply