public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String name = "name";
String jumpName = request.getParameter(name ) ;
RequestDispatcher disp = null ;
if (null == jumpName) {
disp = request.getRequestDispatcher("/call.html") ;
disp.forward(request, response) ;
return ;
}
if (jumpName.equals("jsp")) {
disp = request.getRequestDispatcher("/Hello.jsp") ;
}
if (jumpName.equals("servlet")) {
disp = request.getRequestDispatcher("/HelloServlet.do") ;
}
disp.forward(request, response) ;
/**
* servlet之间的跳转
* servlet之间可以互相跳转的,从一个servlet程序到另一个servlet。利用servlet的跳转可以很容易地
* 把一项任务按模块分开。比如使用一个servlet接受用户接受的数据,然后跳转到另一个servlet中读取数据库进行
* 业务操作,然后跳转到另一个servlet把出来的数据显示出来。servlet跳转可以实现程序的模块化
*
* 现在的mvc框架中都使用了servlet的调转。mvc框架把程序分成三个独立的模块:业务模块视图模块,控制模块。其中的model复杂
* 业务view负责数据的显示,而control负责两者之间的控制。
*
*/
/**
* 转向--Forward
* 转向是通过requestDispatcher对象的forward方法来实现的。requestDispatcher可以通过HttpServletRequest的getRequestDispatcher
* 方法获得的
*
* getResquestDispatcher()方法的参数必须用/开始的,表示的本web应用的根目录。
* Forward是MVC框架的重要的技术了。forward不仅仅可以跳转到本应用的另一个servlet,jsp页面等等,也可以跳转到一个文件的。
* 甚至是web-inf下的目录。其中条状到servlet和jsp是恨常见的。框架中常使用一个servlet来集中处理请求然后跳转到响应的servlet,
*
* 当使用forward形式跳转servlet时,地址栏会显示跳转前的servlet访问地址。因为该跳转时在服务器端实现的,客户端浏览器并不知道该跳转
* 动作。也就是说forward跳转对客户端浏览是透明的。
* forward是最长用的方法。在strusts webwork等mvc框架中中,都是用到了servlet来处理用户的请求的,
* 把结果通过request.setAttribute放到request中去,然后就是foward到jsp了
*
*/
/**
* 重定向 redirect
* 重定向 是利用服务器返回的状态码来实现的。客户端浏览请求服务器的时候,服务端会返回一个状态码,服务端通过httpServletResponse的setStatus
* 方法设置状态码。如果服务器返回301或者是302,那么游览器会到新的网址下重新的请求该资源的。状态码便是的意思
*
* 1xx 信息在被出来
* 2xx 正常
* 3xx信息转移了
* 4xx信息没有了 401没有权限 404资源没有了 405表示访问的格式错的
* 5xx服务端错误了
*/
//RequestDispatcher disp = request.getRequestDispatcher("这里填写的是相对的访问路径,也是调转的那个servlet的名字") ;
//disp.forward(request, response) ;//把request和response 传递过去的
/**
* 301 302都是表示的重定向,区别是301是永久性的重定向,302是临时性的重定向。下面
*/
response.sendRedirect(request.getContextPath()) ; //重定向
/**
* 当使用Redict跳转servlet时,跳转是在客户端实现的,也就是说客户端浏览器实际请求服务器的次数是2次的。第一次获取了
* 重定向状态码与重定向的网址,第二次是访问到真实的网址
*/
/**
* 自动刷新
*
* 自动刷新不仅仅可以实现一段时间之后自动跳转到另一个页面,还可以实现一段时间后,自动刷新本页面。
* 代码
*
*/
response.setHeader("Refresh", "1000;URL=Http://xxxxx") ;
}