servlet(3)
常见的网络访问后缀:
- .html : 网页
- .htm : 网页
- .php : php技术实现的动态网页
- .jsp : Java Server pages Java代码+HTML代码实现的动态网页
- .do : JavaEE 的 Struts1 建议使用.do结尾
- .action : JavaEE 的 Struts2 建议使用.action结尾
ServletContext 了解
(此技术, 在Servlet中 应用较少, 但是在后期的JSP技术中, 它很重要 ,它是JSP九大隐含对象之一, 是四大域对象中范围最大的, 表示整个应用(application)! )
Servlet上下文环境 !
用于关联多个Servlet
是Servlet之间通信的桥梁, 用于在多个Servlet之间 进行数据的共享 !
-----------------------------------------
ServletContext , 在每一个项目中, 存在且只存在一个 , 当tomcat启动时, 会为每一个项目创建一个ServletContext对象, 当Tomcat关闭 , 或应用被卸载时, 销毁ServletContext
在使用上, 我们可以将它当作一个每个Servlet 都可以获取引用的MAP集合, 我们可以在这个ServletContext中, 存储 / 删除 / 获取 数据 !
如何从Servlet中 获取ServletContext
ServletContext context = getServetContext();
这个方法, 是HttpServlet的方法! 所以我们的Servlet都可以直接在 service/doget/dopost 方法中 调用此方法, 获取上下文 !
获取 / 设置 / 删除 ServletContext的属性(Attribute)
- 获取属性:
Object value = context.getAttribute(String key);
- 设置属性:
context.setAttribute(String key,Object value);
- 删除属性:
context.removeAttribute(String key);
获取当前项目运行时所在的文件夹
String dir = getServletContext().getRealPath("/");
ServletConfig 了解
是Servlet的配置对象, 每一个Servlet都拥有一个配置对象
获取ServletConfig对象
两种方式:
两种方式建议选择一种使用:
- 在Servlet中 , 通过getServletConfig方法获取
- 重写init方法, 得到参数列表中的 ServletConfig对象
通过web.xml 向Servlet添加初始化参数!
<servlet>
<servlet-name></servlet-name>
<servlet-class></servlet-class>
<init-param>
<param-name>key</param-name>
<param-value>value</param-value>
</init-param>
</servlet>
通过ServletConfig对象, 获取初始化参数
//通过一个key , 获取一个初始化的值
String value = config.getInitParameter(String key);
//获取所有的key
String[] keys = config.getInitParameterNames();
JDBC + Servlet
图书管理系统:
目前:
M : model : 编写好的一个个具备功能的对象模型
V : view : JSP
C : controls: Servlet
请求的 重定向 与 转发 *****
请求转发与重定向, 在一次操作流程中, 可以发生多次 !
切记, 一定要存在出口 (一定要进行具体的响应) !
请求转发
一个web组件 , 将未处理完毕的请求, 通过tomcat 转交给另一个web组件进行处理 !
步骤:
1. 在处理请求的操作中, 获取请求转发器
RequestDispatcher rd = request.getRequestDispatcher("转发的地址");
2. 通过请求转发器, 开始转发请求
rd.forward(request,response);
在一段代码里, 只会出现一个请求转发的逻辑 , 所以一般我们都是简写如下:
request.getRequestDispatcher("转发的地址").forward(request, response);
注意:
在请求转发操作后的代码中, 不能再出现请求转发 / 重定向 / 响应 等操作 !
特点:
1. 转发过程中, 各个web组件之间, 共享请求对象 与 响应对象 !
2. 请求转发, 浏览器只发起了一次请求, 浏览器地址不会发生改变 !
3. 转发的操作, 只能转发到当前项目中的web组件 !
在请求转发过程中, 多个web组件之间 可以通过请求对象, 共享数据 !
因为请求转发流程中所有的web组件 共享 一个请求对象, 所以我们可以在请求对象中, 将数据进行存储 , 以达到数据传递的效果 !
请求对象 可以存储 / 删除 / 获取 Attribute :
- 获取属性:
Object value = request.getAttribute(String key);
- 设置属性:
request.setAttribute(String key,Object value);
- 删除属性:
request.removeAttribute(String key);
请求重定向 *****
格式:
response.sendRedirect("地址");
原理:
当客户端请求服务器中的一个web组件时, 组件给客户端返回了一个302的状态码 , 和一个location地址 !
当浏览器接收到服务器返回的302状态码以后. 会立即向location发起一个新的请求 !
特点:
1. 在请求重定向的过程中, 产生了两次请求 和 两次响应
2. 在用户看来, 用户浏览器地址发生了改变
3. 重定向可以 将 请求重定向至 外部服务器地址 !
servlet(3)的更多相关文章
- servlet文件下载
创建web工程servlet,新建DownloadServlet.java package com.xmyself.servlet; import java.io.File; import java. ...
- java中servlet的各种路径
1. web.xml中<url-pattern>路径,(叫它Servlet路径!) > 要么以“*”开关,要么为“/”开头 2. 转发和包含路径 > *****以“/”开头:相 ...
- Servlet监听器笔记总结
监听器Listener的概念 监听器的概念很好理解,顾名思义,就是监视目标动作或状态的变化,目标一旦状态发生变化或者有动作,则立马做出反应. Servlet中的也有实现监听器的机制,就是Listene ...
- JavaWeb——Servlet
一.基本概念 Servlet是运行在Web服务器上的小程序,通过http协议和客户端进行交互. 这里的客户端一般为浏览器,发送http请求(request)给服务器(如Tomcat).服务器接收到请求 ...
- servlet 简介,待完善
什么是Servlet?① Servlet就是JAVA 类② Servlet是一个继承HttpServlet类的类③ 这个在服务器端运行,用以处理客户端的请求 Servlet相关包的介绍--javax. ...
- java web学习总结(五) -------------------servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- servlet使用入门
创建web工程servlet,然后新建TestServlet.java package com.xmyself.servlet; import java.io.IOException; import ...
- 基于jsp+servlet图书管理系统之后台万能模板
前奏: 刚开始接触博客园写博客,就是写写平时学的基础知识,慢慢发现大神写的博客思路很清晰,知识很丰富,非常又价值,反思自己写的,顿时感觉非常low,有相当长一段时间没有分享自己的知识.于是静下心来钻研 ...
- [Servlet] 初识Servlet
什么是Servlet? 定义 Servlet的全称是 Server Applet,顾名思义,就是用 Java 编写的服务器端程序. Servlet 是一个 Java Web开发标准,狭义的Servle ...
- Java Servlet+Objective-c图上传 步骤详细
一. Servlet 1.创建图片保存的路径 在项目的WebContent下创建一个上传图片的专属文件夹. 这个文件夹创建后,我们保存的图片就在该文件夹的真实路径下,但是在项目中是无法看到上传的图片的 ...
随机推荐
- 【js】箭头函数与普通函数的异同
普通函数在es5中就有了,箭头函数是es6中出现的函数形式,当然也可以继续用es5写法. 普通函数大家知道: 形式基本一致 来看看箭头函数: 开发时根据实际情况可以省略一些东西 单条处理可以省略ret ...
- kubernetes版本融合解决方案
kubernetes版本融合背景 在kubernetes 1.6版本的基础上进行了深度的定制.而且该版本已经相当稳定.但是随着kubernetes版本迭代,后期使用的如service mesh/kub ...
- 富文本编辑器Quill(一)简单介绍
Quill是一个很流行的富文本编辑器,github上star大约21k: github:https://github.com/quilljs/quill/ 官网: https://quilljs.co ...
- C#线程同步(3)- 互斥量 Mutex
文章原始出处 http://xxinside.blogbus.com/logs/47162540.html 预备知识:C#线程同步(1)- 临界区&Lock,C#线程同步(2)- 临界区&am ...
- 解决js的 Math取正弦值 余弦值不准确的问题
//角度 var vAngle=90: //正弦值 var vSin=Math.round(Math.sin((vAngle * Math.PI/180)) * 1000000) / 1000000 ...
- BTrace:线上问题排查工具
BTrace简介 GitHub地址:BTrace 下载地址:v1.3.11.3 官方使用教程:Btrace使用教程 使用场景 BTrace 是一个事后工具,所谓事后工具就是在服务已经上线了,但是发现存 ...
- BZOJ-1587|前缀和 预处理 dp||叶子合并leaves
叶子合并leaves Description 在一个美丽的秋天,丽丽每天都经过的花园小巷落满了树叶,她决定把树叶堆成K堆,小巷是笔直的 共有N片树叶(树叶排列也是笔直的),每片树叶都有一个重量值,并且 ...
- 基于卷积神经网络CNN的电影推荐系统
本项目使用文本卷积神经网络,并使用MovieLens数据集完成电影推荐的任务. 推荐系统在日常的网络应用中无处不在,比如网上购物.网上买书.新闻app.社交网络.音乐网站.电影网站等等等等,有人的地方 ...
- Java内存模型探秘
1.Java内存模型概述 Java内存模型是一种抽象概念,不是真实存在的.主要定义了程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存取出变量这样的底层细节.注意:这里的变量仅包括实例字段 ...
- 线段树(segment_tree)
线段树之——区间修改区间查询 1.概述 线段树,也叫区间树,是一个完全二叉树,它在各个节点保存一条线段(即“子数组”),因而常用于解决数列维护问题,基本能保证每个操作的复杂度为O(lgN). 线段树是 ...