servlet

容器对Servlet的支持包括
通信支持
Servlet生命周期管理
多线程支持
JSP支持
处理安全性

两个接口 javax.servlet.Servlet
javax.servlet.GenericServlet

两个类:GenericServlet HttpServlet

创建对象
init初始化
doget提供服务
destroy方法销毁
GC回收

正常情况下servlet在服务器被创建出来只有一个对象创建对象,初始化,销毁只会执行一次

局部变量没有线程安全问题
成员变量有线程安全问题
同步锁和局部变量能解决线程安全问题,但是同步锁的性能极低.

Servlet基本配置
完全匹配/servlet/MyServlet.do
目录匹配/servlet/
扩展名匹配.do
容器查找规则
容器会优先查找完全匹配,如果找不到则查找目录匹配,如果仍找不到再查找扩展名匹配
如果一个请求可以匹配多个目录匹配,容器会选择最长的目录匹配

servlet 3.0 对annotation注解支持

模块化编程
Servlet异步处理
异步Listener
文件上传API简化

ServletContext应用上下文
(只有一个对象/)
通过ServletContext对象将虚拟路径转化为部署到服务器那边的真实物理路径

属于整个Web应用程序

可以访问到Web应用程序资源的本地输入流
把资源的虚拟路径转换为物理路径(本地开发路径丶服务器部署的路径)
记录事件日志
绑定一个对象在整个Web应用程序中共享
除非服务器崩溃或者停掉,否则创建出来就是全局对象

Tomcat对WEB-INF里的所有文件是保护的,外部浏览器无法访问

HTTP响应头:发送回来的内容
通用方法:setHeader
!!!setContentType

重定向:用于跳转页面
至少两次请求,两次响应
首先将状态码设置为302,再根据响应头里Location的URL地址,重新发送请求

四种发请求的方式:
地址栏 Get请求
超链接 a标签 Get请求
表单提交 既可以是Post请求,也可以是Get请求
AJAX 既可以是Post请求,也可以是Get请求

特征 GET方法 POST方法
提交数据类型 文本
提交数据长度 不超过225个字符
提交数据可见性 作为URL地址的一部分显示在
提交数据缓存

何时使用GET/POST方法
1请求一个静态页面或图形文件时使用GET方法,因为仅仅需要发送文件名
2发送大数据的时候,使用POST方法
3上传文件时,使用POST方法
4发送用户名,密码或其他保密信息的时候使用POST方法

@WebServlet("/UpLoadServlet") 或者 配置XML文件来映射路径(二选一)

URL 统一资源定位符
URI 统一资源标识符
URI的两个子集: URL URN:

表单中提交数据有二进制数据时,只能用post请求
要改变默认编码集
要通过@MultipartConfig注解 //开启Servlet3.0文件上传开关

请求转发(内转发):地址栏不会发生变化
在服务器内部进行转发 对于用户是一次请求,一次响应

request仓库:只在一次请求和一次响应中有效
在request仓库中保存数据 线程绝对安全
跨服务器最好用请求转发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值