本资源主要介绍了如何在JSP中利用HTTP文件头响应动态改变客户端的行为,特别是通过`response.setHeader()`方法设置响应头实现定时刷新页面的功能。此外,内容还涉及了JSP的九大内置对象、HTML表单的使用以及表单数据在服务器端的获取和处理。 在JSP中,`response.setHeader()`方法允许开发者向HTTP响应中添加自定义头部信息。在这个例子中,`response.setHeader("Refresh","5")`设置了 Refresh 头部,指示浏览器每隔5秒钟自动刷新页面。这在构建动态更新的应用场景或者模拟定时器效果时非常有用。 JSP的九大内置对象是JSP编程的核心组成部分,它们分别是: 1. **out对象**:用于输出内容到客户端,它是`javax.servlet.jsp.JspWriter`的实例。 2. **request对象**:代表HTTP请求,用于获取请求参数和数据,它是`javax.servlet.http.HttpServletRequest`的实例。 3. **response对象**:代表HTTP响应,可以设置响应头和输出响应体,它是`javax.servlet.http.HttpServletResponse`的实例。 4. **application对象**:全局应用程序范围内的数据存储,它是`javax.servlet.ServletContext`的实例。 5. **session对象**:用户会话级别的数据存储,它是`javax.servlet.http.HttpSession`的实例。 6. **pageContext对象**:提供对当前页面所有作用域的访问,它是`javax.servlet.jsp.PageContext`的实例。 7. **config对象**:提供了初始化参数,它是`javax.servlet.ServletConfig`的实例。 8. **page对象**:代表当前的JSP页面,它是`javax.servlet.jsp.HttpJspPage`的实例。 9. **exception对象**:在页面错误处理时使用,它是`javax.servlet.jsp.JspException`的实例。 在HTML表单中,用户可以通过输入控件(如文本框、密码框等)提交数据。表单数据的发送方式有两种:GET和POST。GET方式将数据附加到URL上,有长度限制;POST方式则将数据隐藏在HTTP请求体中,无长度限制。服务器端通过JSP的内置对象request来获取表单数据,例如`request.getParameter("name")`可以获取名为"name"的文本框的值。 处理HTML表单的典型流程是:用户填写表单并提交,服务器端的JSP页面接收数据,进行业务逻辑处理,然后根据处理结果决定返回哪个结果页面。这个过程涉及了JSP内置对象的使用,如request对象用于获取表单数据,response对象用于设置重定向或转发到其他页面。 JSP编程涉及了服务器端与客户端的交互,通过HTTP协议和内置对象来处理用户的请求和响应。理解这些概念对于开发动态网页应用至关重要。
(1) 该功能的实现步骤如下: (1)创建下载页面download.jsp。 <%@ page language="java" contentType="text/html; charset=UTF-8" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>文件下载</title> </head> <body> 文件下载 </body> </html> (2)编写DownloadServlet类,该类主要用于设置所要下载的文件以及文件在浏览器中的打开方式,并使用 encode(String s, String enc)方法,将URL中的字符串以指定的编码形式输出,防止文件名出现中文乱码问 题。 import java.io.*; import java.net.URLEncoder; import javax.servlet.*; import javax.servlet.http.*; public class DownloadServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); // 获得绝对路径创建文件对象 String path=getServletContext().getRealPath("/download/1.png"); File file=new File(path); // 通知浏览器以下载的方式打开文件 response.addHeader("Content-Type", "application/octet-stream"); response.addHeader("Content-Disposition","attachment;filename=" +URLEncoder.encode(file.getName(),"utf-8")); // 通过文件对象获取文件相关的输入流 InputStream in=new FileInputStream(file); // 获取response对象的输出流 OutputStream out = response.getOutputStream(); byte [] buffer=new byte[1024]; int len; while((len=in.read(buffer))!=-1){ out.write(buffer,0,len); } } public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } 每句话是什么意思翻译
- 粉丝: 14
- 资源: 2万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展