易截截图软件、单文件、免安装、纯绿色、仅160KB

JSP与Sevlet的相互通信方式(二)

Servlet:
在Servlet中,跳转在doGet或者doPost方法中实现。
<1>redirect实现页面跳转:
 response.sendRedirect("/login.jsp");
 方法的参数是相对路径,设定这个参数可以使页面跳转到任何页面,包括www.baidu.com等网络页面。
 跳转后你可以发现地址栏发生了变化。
 底层原理:使用redirect方式,实现页面跳转时由客户端完成的。该方法实现的时候,是通过改变HTTP协议的Header部分,对浏览器下达跳转命令。该方法可以接受绝对路径或者相对路径,如果是相对路径,会解析成绝对路径然后传给客户端。
传值要求:只能重写URL,或者用Session传值,而不能用request.setAttribute()传值。
 <2>forward实现页面跳转:
  RequestDispatcher dipatcher=request.getRequestDispatcher("/login.jsp");
  dispatcher.forward(request,response);
  只能跳转到本web应用中的页面。地址栏不发生变化
  底层原理:forward是在服务器端做页面定向,然后再向客户端发送数据:服务器端先将数据输出到缓冲区,当(1)来自客户端的所有request处理完,并把所有数据输出到缓冲区(2)缓冲区满(3)在程序中调用缓冲区方法out.flush()或者response.flushbuffer(),三者满足其一时,web container才将缓冲区烦人内容传送给客户端。
 
  传值要求:重写URL,或者用Session传值,或者用request.setAttribute()传值。
JSP:
<1>response.sendRedirect()和serlvlet的response.sendRedirect()一样
       此语句前部允许使用out.flush,否则会抛出异常
       如果跳转到不同主机,跳转后,此语句后面的语句继续执行,就像是新开了一个线程,但是此后对response的操作无效
       如果跳转到相同的主机,此语句后面的语句执行完毕之后才发生跳转
       跳转后地址栏发生变化
<2>response.setHeader("Location","")
       此语句前不允许有out.flush(),如果有,不发生跳转
       此语句后面的语句执行完成后才会跳转
       跳转后浏览器地址栏变化
<3><jsp:forward page="" />
    &nb


相关文档:

jsp文件下载完整方法

第一种:
就是直接给出下载的地址,这种方式很不好,因为会暴露你的地址,带来很多不安全的因素,可以说是千万不要用这种
第二种:
下载页面
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<html>
<head>
<title>download</title>
</head>
< ......

JSP中文件下载

<%--   
 
有些朋友询问使用 JSP Smart 下载文件的时候报错, 这里给出一个测试过的不  
 
需要使用 JSP Smart 的 JSP 页面中进行文件下载的代码(改 Servlet 或者  
 
JavaBean 的话自己改吧), 支持中文附件名(做了转内码处理). 事实上只要向   ......

JSP中表单数据存储的通用方法

朗沃教育成都计算机培训-JSP篇
J2EE(Java 2 Enterprise Edition)技术已广泛应用在Web应用开发中,其中的JavaBean、Servlet技术为开发者提供了更为清晰的开发环境,使用JSP技术表现页面,使用Servlet技术完成大量的业务处理,使用Bean来存储数据及一些业务处理。在WEB应用中,业务数据存储到数据库中的处理工作经常很繁重, ......

访问JSP文件或者Servlet文件时提示“下载”

在访问JSP文件或者Servlet的时候,如果提示下载并保存,如下图所示:
同样的程序有的浏览器出错,有的浏览器不出错。错误的原因是设置MIME类型的代码有误。
如果是JSP文件,查看文件头:
<%@ page contentType="text/html;charset=gb2312"%>
如果是Servlet文件,查看:
response.setContentType("text/html;char ......

jsp:forward标签和response.sendRedirect()方法的区别

在网上看到一些帖子,总结了一些区别,可以从以下几个方面来看:
1.从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容
再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号