JavaWeb总结(六)
获取原始表单数据
- POST请求不仅可以传输文本信息还可以传输二进制数据
- 如果想得到请求中参数的原始字节数据,可以使用HttpServletRequest对象提供的getInputSteam()或getReader()方法直接访问表单数据
获取原始表单数据的两种情况
- 数据不是由HTML表单提交,而是来自某个客户端程序,需要自己读取和分析这些数据。
- 数据来自于上传的文件时,需要自己读取数据
请求派发
- 每个客户的请求可以传递给很多Servlet以及Web应用程序中的其它资源
- 整个过程完全是在服务器端完成
- 不需要任何客户端浏览器的行为
- 不需要在客户端浏览器和服务器端之间传递特殊信息
- 通过javax.servlet.RequestDispatcher对象实现
|
提示:重定向让客户端浏览器来完成,而请求派发是在服务器端做工作 |
请求派发的实现
- 调用ServletRequest对象的方法:
- getRequestDispatcher(path):方法返回给定路径的RequestDispatcher对象
- getNamedDispatcher(name) :返回某个名称的Servlet的RequestDispatcher对象
|
提示:RequestDispatcher对象还可以通过ServletContext对象的getRequestDispatcher()得到,路径值必须是以根目录"/"开始 |
- RequestDispatcher对象提供了两种方法:
- forward(ServletRequest, ServletResponse):派发请求和响应对象到RequestDispatcher 对象所确定的新资源(Servlet、JSP或者HTML等)
- include(ServletRequest, ServletResponse)该方法关键是能包含服务器端的资源
|
request.getRequestDispatcher("/sucess.html").include(request, response); request.getRequestDispatcher("/sucess.html").forward(request, response); |

forward跳转示意图

include包含示意图
请求范围
- 变量可以保存在请求范围中
- 在请求范围之外就不能进行访问了
public class Servlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("key", "value");
//重定向跳转到Servlet2,Servlet2获取的值为null
//response.sendRedirect("Servlet2");
//forward跳转到Servlet2,Servlet能获取值为value
//request.getRequestDispatcher("Servlet2").forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
public class Servlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.err.println(request.getAttribute("key"));
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
JavaWeb总结(六)的更多相关文章
- JavaWeb(六)之MVC与三层架构设计
前言 这段时间要学习hadoop,但是也希望把自己的web知识复习起来.所以花自己休息的时间把这些web的知识好好的巩固一下!没有什么可以阻挡我前进的脚步. 首先我们先了解一下: C/S:客户端 / ...
- JavaWeb学习 (六)————Servlet(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- JavaWeb总结(六)—Session
一.Session的介绍 在Web开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务器 ...
- JavaWeb 后端 <六> 之 EL & JSTL 学习笔记
一.EL表达式(特别重要)
- JavaWeb(六)Listener监听器
监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. Servlet监听器 在Se ...
- javaweb笔记六
指令包含:可以在一个jsp中包含另一个jsp中的内容.会将包含页面和被包含页面放在一起编译,形成一个java类.所以,是在编译时发生的.只能包含文件,不允许两个页面之间存在同名变量.被包含页面也不应该 ...
- javaweb(十六)——JSP指令
一.JSP指令简介 JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分. 在JSP 2.0规范中共定义了三个指令: pa ...
- JavaWeb【六、JavaBean】
简介 JavaBean是符合设计原则的Java类.好处是提高可复用性,减少冗余,增强可维护性. JavaBean设计原则 共有类 无参共有构造 属性私有 getter和setter方法 JSP动作元素 ...
- 2017.11.2 JavaWeb----第六章 Servlet技术
JavaWeb ------第六章 Servlet技术 (1)在Web应用程序开发中,一般由JSP JavaBean技术和 Servlet技术的结合实现MVC开发模式.在MVC开发模式中将Web程序的 ...
- JavaWeb【一、简介】
原计划上周完成的内容,硬是过了一个清明拖到了这周,工作上还有很多东西没做...明天抓紧看把,争取这周末搞定 内容简介:(学习完后会重新梳理调整) 1.JavaWeb[一.简介] 2.JavaWeb[二 ...
随机推荐
- [转] iOS 动画库 Pop 和 Canvas 各自的优势和劣势是什么?
iOS 动画库 Pop 和 Canvas 各自的优势和劣势是什么? http://www.zhihu.com/question/23654895/answer/25541037 拿 Canvas 来和 ...
- [翻译] SSKeychain
SSKeychain https://github.com/soffes/sskeychain SSKeychain is a simple wrapper for accessing account ...
- Python入门-模块4(序列化----json模块和pickle模块)
序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes.反之,把硬盘里面的数据读到内存里,叫反序列化.
- oracle监听,数据库,oracle服务器的启动和停用
一.oracle监听,数据库,oracle服务器的启动和停用 使用root用户登录:切换用户su – root/root操作系统,一般只有root用户才有权限去操作系统中安装的oracle数据库服务器 ...
- 【教程】【FLEX】#006 控件位置的拖动
上一篇笔记学习了怎么从 把一个控件拖放到另外一个控件里面(即 A --> B里面). 而现在呢,则是学习 怎么把 A 拖到另外一个位置. (A -->A位置改变): 先说一下实现的思路( ...
- win10不错的快捷键
A I S number 左右 上下 , Win键 Open Action center. Open Settings. Open Search. Open the app pinned to t ...
- [T-ARA][Bo Peep Bo Peep]
歌词来源:http://music.163.com/#/song?id=22704468 作曲 : 新沙洞老虎/崔圭成 [作曲 : 新沙洞老虎/崔圭成] 作词 : 新沙洞老虎/崔圭成 [作词 : 新沙 ...
- php实现二分查找
<?php class BinSch{ /* * 二分查找,针对顺序表才有用 */ public function search($arr,$k,$low,$high){ if($low< ...
- BZOJ5418:[NOI2018]屠龙勇士(exCRT,exgcd,set)
Description Input Output Sample Input 23 33 5 74 6 107 3 91 9 10003 23 5 64 8 71 1 11 1 Sample Outpu ...
- BigDecimalUtil 工具类
一.为什么要用BigDecimal? 涉及到加减乘除,用int,double 会出现数据丢失,这个时候就要用BigDecimal. 注意:在new BigDecimal(Double.toString ...