package response;
import java.io.IOException;
import java.util.Random;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ResponseDemo5 extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
test3(request, response);
}
//這種方法開發中常用
private void test3(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//通過meta標簽來模擬頁面跳轉
String message = "<meta http-equiv='refresh' content='3;url=/requestandresponse/index.jsp'>恭喜你登錄成功,頁面將在3秒內跳轉,如不跳轉請點擊<a href=''>超鏈接</a>";
this.getServletContext().setAttribute("message", message);
//頁面跳轉到jsp頁面
this.getServletContext().getRequestDispatcher("/message.jsp").forward(request, response);
}
//這種方法在開發中是不用的以為,提示信息是交給jsp頁面顯示的,不能通過servlet直接顯示
private void test2(HttpServletResponse response) throws IOException {
//假設這是一個用於處理登錄的Servlet
//假設程序運行到此,用戶登錄成功了
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("refresh","3;url='/requestandresponse/index.jsp'");
response.getWriter().write("恭喜你登錄成功,頁面將在3秒內跳轉,如不跳轉請點擊<a href=''>超鏈接</a>");
}
private void test1(HttpServletResponse response) throws IOException {
//通知瀏覽器每隔3秒刷新一次
response.setHeader("refresh","3");
String data = new Random().nextInt(10000)+"";
response.getWriter().write(data);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}