javaweb

Servlet 生命周期

每次请求servlet sevlet都会调用service() 多次调用


@webservlet(value="demo",loadOnstartup=-1)
value等同于urlpatterns  一个servlet 可以匹配多个urlpattern
urlpattern的匹配规则
1.精确匹配  优先级最高
2.目录匹配 @WebServlet("/user/*")
3.扩展名匹配 @WebServlet("*.do") 不能以"/"开头
4.任意匹配@WebServlet("/*")  或者@WebServlet("/*");   / 会覆盖静态资源和页面


loadOnStartup 默认是你要访问的那个url页面才会初始化,改为o或正数(数字越小优先级越高) 就是启动tomacat就启动int

destory()方法 调用时机 内存释放或服务器关闭 servlet对象会被销毁 一次


请求转发
一种服务器内部资源跳转的方式
实现方式
req.getRequestDispatcher("资源b路径").forward(req,resp);
请求转发资源间共享数据 使用request对象
void setAttribute 存储数据到requesti域中
getAttribute 获取键值对
特点 :
浏览器路径不会变化
只能转发到服务器内部资源
一次请求,可以在转发的资源间使用request共享数据

Response

Response 完成重定向 : 一种资源转发的方式

resp.sendRedirect("资源b的路径") 虚拟目录需要加上

重定向的特点 :

浏览器地址栏发生变化

可以重定向任意位置的资源

两次请求 不能在多个资源中使用request共享数据

路径问题

浏览器使用需要加上虚拟目录

服务端使用 不需要加虚拟目录

动态获取虚拟目录

getContextPath 

Response 响应字符数据

PrintWrite writer=resp.getWriter();

该流不需要关闭 会随着response响应关闭

需要

response.setContentType("text/html;charset=UTF-8");中文编码

Response 响应字节数据

通过response对象获取字节输出流

ServletOutputStream outputStream=resp.getOutpuStream();

outputStream.write(字节数据);I
OUtils  工具使用

导入依赖坐标

commons-io

使用 IOUtils.copy(输入流,输出流);

等同于 

byte[] buff = new byte[1024];
int len=0;
while((len=fis.read(buff))!=-1){
    os.write(buff,0,len);

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值