response对象

response对象:
jsp: forward和response.sendRedirect()两种跳转语句区别:
如果使用前者的话:
    服务器跳转,跳转后地址栏不变;
    属于无条件跳转,执行之后立即跳转,跳转之前的语句会执行,而跳转之后的语句
    将不会执行,那么如果现在在jsp中使用了jdbc之后,很明显必须在跳转至那进行数据库的关闭,否则就无法在关闭了。
如果使用后者的话:
     客户端跳转,跳转之后地址栏改变,不可以传递request属性
     是在所有语句执行完之后才完成的跳转。
Cookie:


    按照Cookie的理论来说,所有的Cookie应该都保存了客户端,那么即使现在的浏览器
    关闭后也应该可以继续取得
   如果Cookie没有设置保存时间的话,默认的实在一个浏览器中保存的,如果浏览器关闭的话
   ,则Cookie消失,那么如果要先真正的保存在客户端上一段时间,则必须使用Cookie类提供的setMaxAge()方法完成。
   response对象主要表示的是服务器端对客户端的回应,对于Cookie的操作本身是存在安全隐患的,如果存放客户端信息的时候都使用

  Cookie保存即可。   

Cookie代码用例:

<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<body>
<%
     Cookie c1=new Cookie("name","runner");
     Cookie c2= new Cookie("url","www.baidu.com");
     c1.setMaxAge(100);
     c2.setMaxAge(100);
     response.addCookie(c1);
     response.addCookie(c2);
%>
</body>
</html>



<%@page contentType="text/html" pageEncoding="GBK"%>
<html>
<body>
<%
      Cookie[] c=request.getCookies();
     for(int i=0;i<c.length;i++){
    %>
        <%=c[i].getName() %> ------><%=c[i].getValue() %><br>      
<% 
     }
%>

<!-- <h3>3秒跳转,如果没有跳转,请点击<a href="1.jsp">这里</h3>
<%
response.setHeader("refresh", "3;URL=1.jsp");//3s跳转
%>
-->
</body>
</html>

### 处理 HTTP 错误的方式 #### 使用 `response.status` 进行条件判断 通过检查 `response.status` 的值,可以判断响应的状态码是否在正常范围内。一般来说,状态码在 200 - 299 之间表示请求成功。示例代码如下: ```javascript fetch('https://example.com/api/data') .then(response => { if (response.status >= 200 && response.status < 300) { return response.json(); } else { throw new Error(`HTTP error! status: ${response.status}`); } }) .then(data => { console.log(data); }) .catch(error => { console.error('Fetch error:', error); }); ``` #### 封装 `fetch` 请求函数 将 `fetch` 请求封装成一个函数,在函数内部统一处理错误,提高代码复用性。示例代码如下: ```javascript function customFetch(url) { return fetch(url) .then(response => { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } return response.json(); }); } customFetch('https://example.com/api/data') .then(data => { console.log(data); }) .catch(error => { console.error('Fetch error:', error); }); ``` #### 使用第三方库 使用 `axios` 库,它内部已经对 HTTP 错误进行了封装处理。示例代码如下: ```javascript import axios from 'axios'; axios.get('https://example.com/api/data') .then(response => { console.log(response.data); }) .catch(error => { if (error.response) { console.error('Server responded with an error:', error.response.status); } else if (error.request) { console.error('No response received:', error.request); } else { console.error('Error setting up the request:', error.message); } }); ``` ### 解决 response 对象无法打印的问题 #### 检查响应格式 如果响应不是 JSON 格式,直接调用 `response.json()` 会报错。可以先检查响应的 `Content-Type` 头信息。示例代码如下: ```javascript fetch('https://example.com/api/data') .then(response => { const contentType = response.headers.get('Content-Type'); if (contentType && contentType.includes('application/json')) { return response.json(); } else { return response.text(); } }) .then(data => { console.log(data); }) .catch(error => { console.error('Fetch error:', error); }); ``` #### 处理异步问题 `fetch` 是异步操作,确保在响应返回后再打印。如果在响应还未返回时就尝试打印,可能会得到未定义或不完整的结果。 #### 检查网络请求是否成功 如果网络请求失败,`response` 对象可能不包含预期的数据。可以使用前面提到的错误处理方法,确保请求成功后再处理响应。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值