<meta http-equiv="" content="">详解

本文介绍了HTML中HTTP-Equiv元标签的各种用途,包括设定字符集、缓存控制、页面过期时间等,并详细解释了这些标签如何帮助浏览器更有效地处理网页内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http-equiv,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,

以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。

一、

meta标签的http-equiv属性语法格式是:<meta http-equiv="参数" content="参数变量值"> ;其中http-equiv属性主要有以下几种参数:

1.<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

content-Type(显示字符集的设定) 
说明:设定页面使用的字符集。 
用法:

<meta http-equiv="content-Type" content="text/html; charset=gb2312">

    2.<meta http-equiv="Cache-Control" content="no-cache"/>

清除缓存(再访问这个网站要重新下载!)

Cache-Control头域
Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。各个消息中的指令含义如下
Public指示响应可被任何缓存区缓存
Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效
no-cache指示请求或响应消息不能缓存
no-store用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。
max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应
min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应
max-stale指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。

3.<meta http-equiv="Expires" content="0"/>

设定网页的到期时间

4.<meta http-equiv="Pragma" content="no-cache"/>

是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出 
用法:

5.<meta http-equiv="Refresh" content="2;URL=http://www.NET.cn/">

Refresh(刷新) 
说明:自动刷新并指向新页面。 

6.<meta http-equiv="Cache-Control" content="no-store"/>

强制缓存在任何情况下都不要保留任何副本

7.<meta http-equiv="Pics-label" contect=""

Pics-label(网页等级评定)

8.<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"

关键字,给搜索引擎用的

<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0,shrink-to-fit=no, viewport-fit=cover"> <meta name="keywords" content="蓝桥到家"> <meta name="description" itemprop="description" content="生鲜副食、饮品乳品、鲜花蛋糕"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>确认订单</title> <link rel="stylesheet" type="text/css" href="../styles/reset.css" /> <link rel="stylesheet" type="text/css" href="../styles/iconfont/iconfont.css" /> <link rel="stylesheet" type="text/css" href="../styles/order-confirm.css" /> <link rel="stylesheet" type="text/css" href="../styles/common.css" /> <script type="text/javascript" src="../js/common.js"></script> <script type="text/javascript" src="../js/zepto.min.js"></script> <script type="text/javascript" src="../js/data.js"></script> </head> <body> <div class="wrap"> <!-- 头部 start --> <header class="header_bar"> <a href="shopcart.html"> <div class="header_bar_back"></div> </a> <div class="header_bar_title">确认订单</div> </header> <!-- 头部 end --> <div class="container"> <!-- 订单信息 start --> <div class="order-address"> <h5>配送至:</h5> <a id="addressSelectLink" href="#"> <div class="address" id="selectedAddress"> <!-- 地址信息将通过JavaScript动态生成 --> </div> </a> </div> <h3 id="storeName">商家名称</h3> <ul class="order-detail" id="orderItems"> <!-- 订单商品将通过JavaScript动态生成 --> </ul> <div class="order-cost"> <p>配送费</p> <p id="deliveryFee">¥0</p> </div> <!-- 合计部分 --> <div class="total"> <div class="total-left" id="totalPrice"> 总计:0 元 </div> <div class="total-right" id="paymentBtn"> 去支付 </div> </div> <!-- 订单信息 end --> </div> </div> <script> $(function() { // 检查用户是否已登录 if (!checkLogin()) return; // 获取店铺ID const urlParams = new URLSearchParams(window.location.search); const storeId = parseInt(urlParams.get('storeId') || '0'); if (storeId === 0) { alert('订单信息错误'); window.location.href = 'shopcart.html'; return; } // 获取店铺数据 const store = getStoreById(storeId); // 生鲜果蔬专区特殊处理 let storeName = ''; let deliveryFee = 0; if (storeId === 999) { // 生鲜果蔬专区 storeName = '生鲜果蔬专区'; deliveryFee = 5; // 设置配送费 } else if (!store) { alert('店铺不存在'); window.location.href = 'shopcart.html'; return; } else { storeName = store.name; deliveryFee = store.deliveryFee; } // 获取购物车中该店铺的商品 const storeItems = cart.getItemsByStore(storeId); if (storeItems.length === 0) { alert('购物车为空'); if (storeId === 999) { window.location.href = 'fresh.html'; } else { window.location.href = 'shop.html?id=' + storeId; } return; } // 更新地址选择链接 $('#addressSelectLink').attr('href', 'address-select.html?from=order-confirm&storeId=' + storeId); // 渲染收货地址 function renderSelectedAddress() { const selectedAddressEl = $('#selectedAddress'); const defaultAddress = addressManager.getDefaultAddress(); // 调试信息 console.log('地址管理器:', addressManager); console.log('默认地址:', defaultAddress); if (defaultAddress) { selectedAddressEl.html(` <div class="address-content"> <div class="address-info"> <p class="address-detail">${defaultAddress.province}${defaultAddress.city}${defaultAddress.district}${defaultAddress.detail}</p> <p class="address-contact">${defaultAddress.name} ${defaultAddress.phone}</p> </div> <div class="address-arrow"> <span class="iconfont icon-youjiantou"></span> </div> </div> `); } else { selectedAddressEl.html(` <div class="address-content"> <div class="address-info"> <p class="address-placeholder">请选择收货地址</p> </div> <div class="address-arrow"> <span class="iconfont icon-youjiantou"></span> </div> </div> `); } } // 渲染店铺名称 $('#storeName').text(storeName); // 渲染配送费 $('#deliveryFee').text('¥' + deliveryFee); // 渲染订单商品 let orderItemsHtml = ''; let subtotal = 0; storeItems.forEach(item => { const itemTotal = item.price * item.quantity; subtotal += itemTotal; orderItemsHtml += ` <li> <div class="goods"> <img src="${item.image.replace('images/', '../images/')}"> <p>${item.name} x ${item.quantity}</p> </div> <p>¥${formatPrice(itemTotal)}</p> </li> `; }); $('#orderItems').html(orderItemsHtml); // 计算总价(商品小计 + 配送费) const total = subtotal + deliveryFee; $('#totalPrice').text(`总计:${formatPrice(total)} 元`); // 支付按钮点击事件 $('#paymentBtn').on('click', function() { // 检查是否有收货地址 const defaultAddress = addressManager.getDefaultAddress(); if (!defaultAddress) { alert('请先添加收货地址'); window.location.href = 'address-select.html?from=order-confirm&storeId=' + storeId; return; } // 保存订单信息到本地存储 const currentUser = JSON.parse(localStorage.getItem("currentUser")); const orderKey = `orders_${currentUser.phone}`; const existingOrders = JSON.parse(localStorage.getItem(orderKey) || "[]"); const newOrder = { id: new Date().getTime(), storeId: storeId, storeName: storeName, items: storeItems, subtotal: subtotal, deliveryFee: deliveryFee, total: total, status: "待支付", createTime: new Date().toLocaleString(), address: defaultAddress }; existingOrders.push(newOrder); localStorage.setItem(orderKey, JSON.stringify(existingOrders)); // 清空该店铺的购物车 storeItems.forEach(item => { cart.updateQuantity(storeId, item.productId, 0); }); // 跳转到支付页面 window.location.href = 'payment.html?orderId=' + newOrder.id; }); // 初始化页面 renderSelectedAddress(); }); </script> <style> </style> </body> </html>按部分解释代码 一部分一部分 每一行解释 并解释他的设计逻辑
最新发布
07-17
package com.sshmvc.ljl.web.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.sshmvc.ljl.pojo.Users; import com.sshmvc.ljl.service.UserService; import com.sshmvc.ljl.service.impl.UserServiceImpl; /** * Servlet implementation class ListUserServlet */ public class ListUserServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); response.setCharacterEncoding("utf-8"); PrintWriter out = response.getWriter(); ListUserInfo(request, response); out.flush(); out.close(); } private void ListUserInfo(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { List list = new ArrayList(); UserService userService = new UserServiceImpl(); list = userService.listUser(); request.setAttribute("listUsers", list); // response.sendRedirect("/sshmvc/listUser.jsp"); request.getRequestDispatcher("/listUser.jsp") .forward(request, response); } } <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; List list = (List) request.getAttribute("listUsers"); if (list == null) { list = (List) request.getAttribute("listUs
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值