package demo1;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class ZhuanFa
*/
public class ZhuanFa extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ZhuanFa() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//zhuanFa(request, response);
chongDingXiang(response);
}
private void chongDingXiang(HttpServletResponse response)
throws IOException {
/*response.setStatus(302);
* response.setHeader("location","reg.html"")
*
* 在能不用重定向的时候尽量不要用,因为它会增加服务器的负担(发送两次请求)
* 用重定向的例子:注册登录,购物车、
*/
response.sendRedirect("reg.html");//实际上这句话就是实现了上面两句的功能
}
private void zhuanFa(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String data="aaaa";
request.setAttribute("data", data);
//这个必须要用request 不能用content 因为后者要出类似安全的问题
request.getRequestDispatcher("/zhuanfa.jsp").forward(request, response);
/*注意啦 跳转的前提是必须没有把数据输出(比如用outputstream)输出 否则报错
* 就像getOutputStream与getWriter不能同时报错
*/
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
package demo1;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class refresh
*/
public class refresh extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public refresh() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//zhuanfa1(response);
/*
* 这个是最好的写法
* 在项目中 一个登陆页面 用servlet处理以后 把数据交给jsp 提示用户成功 然后跳转到首页
*/
String wel="<meta http-equiv='Refresh' content='3;url=reg.html>'"+"welcom to my home";
request.setAttribute("wel", wel);
request.getRequestDispatcher("/zhuanfa1.jsp").forward(request, response);
}
private void zhuanfa1(HttpServletResponse response) throws IOException {
//response.setHeader("refresh", "3;url=reg.html");//第一种,设置头来控制跳转
String wlecome="欢迎登陆本网站1。。。。。";
String w="<meta http-equiv='Refresh' content='3;url=reg.html>'"+wlecome;//第二种,用模拟头来控制
OutputStream os=response.getOutputStream();
os.write(w.getBytes());
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}