`
paddy.w
  • 浏览: 505031 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[转帖]JSP页面跳转方法

阅读更多
    1. RequestDispatcher.forward()

    是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 但forward()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面。
    重定向后浏览器地址栏URL不变。

    例:在servlet中进行重定向
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
  response.setContentType("text/html; charset=gb2312");

  ServletContext sc = getServletContext();

  RequestDispatcher rd = null;

  rd = sc.getRequestDispatcher("/index.jsp"); //定向的页面

  rd.forward(request, response);
}

    通常在servlet中使用,不在jsp中使用。

     2. response.sendRedirect()

    是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,sendRedirect()可以重定向有frame.的jsp文件。
    重定向后在浏览器地址栏上会出现重定向页面的URL。

    例:在servlet中重定向
public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{
  response.setContentType("text/html; charset=gb2312");
  response.sendRedirect("/index.jsp");
}

    由于response是jsp页面中的隐含对象,故在jsp页面中可以用response.sendRedirect()直接实现重定位。

    注意:

    (1) 使用response.sendRedirect时,前面不能有HTML输出;
    这并不是绝对的,不能有HTML输出其实是指不能有HTML被送到了浏览器。事实上现在的server都有cache机制,一般在8K(我是说 JSP SERVER),这就意味着,除非你关闭了cache,或者你使用了out.flush()强制刷新,那么在使用sendRedirect之前,有少量的HTML输出也是允许的。

    (2) response.sendRedirect之后,应该紧跟一句return。
    我们已经知道response.sendRedirect是通过浏览器来做转向的,所以只有在页面处理完成后,才会有实际的动作。既然你已经要做转向了,那么后的输出还有什么意义呢?而且有可能会因为后面的输出导致转向失败。

    比较:

    (1) Dispatcher.forward()是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;

    (2) response.sendRedirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。

    前者更加高效,在前者可以满足需要时,尽量使用RequestDispatcher.forward()方法。

   注:在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用HttpServletResponse.sendRequest()方法。

    3. <jsp:forward page="" />

    它的底层部分是由RequestDispatcher来实现的,因此它带有RequestDispatcher.forward()方法的印记。

    如果在之前有很多输出,前面的输出已使缓冲区满,将自动输出到客户端,那么该语句将不起作用,这一点应该特别注意。

    另外要注意:它不能改变浏览器地址,刷新的话会导致重复提交。

    4. 修改HTTP header的Location属性来重定向

    通过设置直接修改地址栏来实现页面的重定向。

    jsp文件代码如下:
<%  response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);  String newLocn = "/newpath/jsa.jsp";  response.setHeader("Location",newLocn);%>


    5. JSP中实现在某页面停留若干秒后,自动重定向到另一页面

    在html文件中,下面的代码:
<meta http-equiv="refresh" content="300; url=target.jsp">

    它的含义:在5分钟之后正在浏览的页面将会自动变为target.html这一页。代码中300为刷新的延迟时间,以秒为单位。targer.html为你想转向的目标页,若为本页则为自动刷新本页。

    由上可知,可以通过setHeader来实现某页面停留若干秒后,自动重定向到另一页面。

    关键代码:
String content=stayTime+";URL="+URL;
response.setHeader("REFRESH",content); 
分享到:
评论

相关推荐

    论坛转帖工具.rar

    标题中的“论坛转帖工具.rar”表明这是一个用于在论坛之间转移帖子的软件工具,通常用于帮助用户方便地将一个论坛的帖子内容复制到另一个论坛,可能是为了分享信息、讨论或保存重要的帖子。这类工具可能包括自动抓取...

    UBB论坛转帖圣手.exe

    UBB论坛转帖圣手.exeUBB论坛转帖圣手.exe

    jsp论坛源码

    开发者在JSP页面中可以嵌入Java代码,从而实现动态网页的功能。在本项目中,JSP用于处理用户的请求,生成响应,并与数据库交互。 2. **Servlet技术**:虽然JSP主要用于视图层,但实际处理业务逻辑时通常会配合...

    贴吧转帖工具

    【贴吧转帖工具】是一种专为百度贴吧用户设计的便捷工具,主要用于提高用户在贴吧中的互动效率。通过这款工具,用户可以实现一键转帖和一键8经验签到的功能,极大地简化了传统操作流程,节省了用户的时间,提升了...

    编辑人员转帖去水印工具

    本篇文章将详细探讨“编辑人员转帖去水印工具”,并介绍如何使用名为Teorex Inpaint的1.0.0.2版本的软件来实现这一目标。 首先,我们要理解什么是水印。水印通常是指在图像或视频中添加的半透明标记,它可以是文字...

    1分钟内抓到WPA握手包的方法!转帖的!!!

    WPA 握手包捕获方法 在WiFi网络安全测试中,捕获 WPA 握手包是一个非常重要的步骤。下面将详细介绍如何在 1 分钟内捕获 WPA 握手包的方法。 一、操作环境 在 Ubuntu 操作系统中,使用 aircrack-ng 工具包和 TP-...

    一键转帖功能插件 for 帝国CMS 6.0 GBK utf8 V1.0.rar

    这样,新插入的转帖按钮将出现在已生成的页面中,等待用户使用。 该插件的工作原理主要是通过JavaScript(`copyto.js`)实现用户界面的交互,当用户点击转帖按钮时,会触发PHP脚本(`copyto.php`)。`copyto.php`...

    Html2UBBMaxcj_Softii论坛专用转帖工具

    HTML(HyperText Markup Language)是网页制作的标准语言,包含了丰富的元素和属性,可以创建复杂的页面结构和样式。而UBB代码则简化了HTML,通常只包含基础的文本格式化功能,如字体、颜色、链接、图片等,更适合...

    discuz X2转帖工具、采集工具

    X2转帖工具、采集工具”是针对这个平台设计的辅助软件,主要用于帮助论坛管理员或用户批量发布帖子和采集内容,提高论坛内容更新的效率。 一、批量发帖功能 1. 自动化发布:此工具可以自动化地创建和发布帖子,...

    [转帖]世界编程大赛第一名写的程序

    熟练掌握调试工具和测试方法,如单元测试、边界条件检查、随机测试等,能够帮助参赛者快速定位并修复错误,确保代码的正确性和健壮性。 4. **编程语言的选择**:虽然大多数编程竞赛允许使用多种语言,但每种语言都...

    转帖图片提取工具 v1.0.zip

    转帖图片提取工具可以对论坛...转帖图片提取工具使用方法: 将IP138上处理过的东西复制到上方的编辑框内,点击只要图片,下面的编辑框就出现结果,点击 复制结果 就可以把内容复制到剪切板中 转帖图片提取工具截图

    转帖工具ConvertX fordiscuz7.1/7.2 修改增强版.rar

    1.修改自Convert X转帖工具 2.新增批量替换关键词(原来是单个词语替换,可以利用这个功能删除一些网站的防转帖代码) 3.批量随机新增文字(新增内容可自定义,从而实现伪原创) 4.cookie记录替换和新增关键词(避免每次...

    转帖工具插件 for PHPwind 7.5 正式版.rar

    "转帖工具插件 for PHPwind 7.5 正式版" 是专门为 PHPwind 7.5 版本设计的一个功能插件,旨在提供便捷的帖子转移功能,帮助管理员或者用户将内容从一个地方轻松移动到另一个地方,而无需直接编辑论坛的原始文件。...

    轻松转帖之突破网页复制限制宣贯.pdf

    【解除右键限制方法】 1. **查看源文件**:使用IE浏览器,可以通过菜单栏的“查看 - 源文件”选项,打开网页的HTML源代码,手动查找并复制所需内容。 2. **使用Word**:复制网页URL,然后在Word中打开,Word会下载...

    一键转帖功能插件 for 帝国CMS v1.0.rar

    "一键转帖功能插件 for 帝国CMS v1.0.rar" 是一个专为帝国CMS设计的扩展工具,其主要目标是简化用户在网站上分享内容的过程,提高用户体验。这个插件允许用户轻松地将网站上的文章或信息复制并转发到其他平台,如...

    超级无敌转帖手

    看到论坛里帖子由精美的图片想转过来,或者批量提取地址时很好用

    [转帖]通过WebView获取访问网页的源代码

    1. 要获取网页源代码,可以使用WebView的`evaluateJavascript()`方法,该方法允许在JavaScript环境中执行代码,并将结果作为字符串返回。可以编写一个JavaScript函数来获取页面的HTML内容: ```javascript function...

    用PHP批量生成图片缩略图——活跃论坛转帖

    5. `开发文档.txt`:提供了关于如何使用这些脚本的说明,可能包含了使用方法、参数解释和示例代码。 在实际操作中,批量生成图片缩略图的步骤通常如下: 1. 检查上传的图片或指定的目录。 2. 对每个图片文件读取并...

    转帖经典---JAVA设计模式

    《转帖经典---JAVA设计模式》这本书或资料可能涵盖了这些模式的详细解释、示例代码以及如何在实际项目中应用这些模式。通过学习和理解这些设计模式,开发者能够更好地设计和重构软件,提升代码质量。

Global site tag (gtag.js) - Google Analytics