JavaWeb-网站在线用户信息、网站访问量以及管理踢出用户实例

news/2024/5/19 0:08:14/文章来源:https://blog.csdn.net/qq_37878579/article/details/79124310

这个稍微比上个版本做得完善了一点,用了JavaBean来封装用户信息,添加了一个管理踢用户的功能。
上一个的用户访问量是通过监听request来统计的,在这个实例中,我们也可以通过过滤器来实现统计网站访问量。

直接看源码吧,感觉没多少要讲的,我习惯把解释写在代码中。

部分源码
index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>在线人信息管理与统计</title>
</head><body><h2>在线人信息管理与统计</h2><c:if test="${empty sessionScope.user}" var="boo"><h3>会员登录:</h3><form action='<c:url value='/LoginServlet'></c:url>' method="post">姓名:<input type='text' name="name"><br /> <input type="submit"value="注册"></form></c:if><c:if test="${!boo}">亲爱的${user.name}<c:if test="${user.admin}" var="bo">-管理员</c:if><c:if test="${!bo}">-会员</c:if>,欢迎来到...<br /></c:if><br /><a href="<c:url value='/servlet/ShowServlet'/>">显示所有在线用户</a><br /><a href="<c:url value='/servlet/LogOutServlet'/>">安全退出</a><br/>网站访问量:${count}</body>
</html>

MyServletContextListener
这个就是实现把访问量持久化的监听器实现类:

package cn.hncu.listeners;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class MyServletContextListener implements ServletContextListener{@Overridepublic void contextInitialized(ServletContextEvent sce) {//从服务器硬盘把之前存储的点击量数据读取出来ServletContext sct = sce.getServletContext();String path = sct.getRealPath("/count.txt");try {BufferedReader br = new BufferedReader(new FileReader(path));String line = br.readLine();Integer count = Integer.valueOf(line);sct.setAttribute("count", count);} catch (Exception e) {//如果出异常了,我们认为文件还不存在,服务器第一次启动e.printStackTrace();sct.setAttribute("count",new Integer(0));}}//关闭服务器时@Overridepublic void contextDestroyed(ServletContextEvent sce) {//把当前servletContext容器中存储的点击量数据 永久化到  服务器硬盘ServletContext sct = sce.getServletContext();String path = sct.getRealPath("/count.txt");try {PrintWriter pw = new PrintWriter(path);pw.write(""+sct.getAttribute("count"));pw.close();} catch (FileNotFoundException e) {e.printStackTrace();}}}

CharsetFilter
实现统计访问量和全站编码的过滤器

package cn.hncu.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;public class CharsetFilter implements Filter{@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");response.setCharacterEncoding("utf-8");//获取该用户的ip,存储到它的session对象中HttpServletRequest req = (HttpServletRequest) request;if(req.getSession().getAttribute("ip")==null){req.getSession().setAttribute("ip", req.getRemoteAddr());//这里的req和request是同一个对象!!!//所以传过去的参数还可以是request}//new一个线程统计访问量new MyThread(request.getServletContext()).start();//放行chain.doFilter(request, response);}@Overridepublic void destroy() {}
}class MyThread extends Thread{private ServletContext servletContext =null;private static Object boj = new Object();public MyThread(ServletContext servletContext) {this.servletContext = servletContext;}@Overridepublic void run() {synchronized (boj) {servletContext.setAttribute("count",(Integer)servletContext.getAttribute("count")+1);}}}

LoginFilter
用户访问其他页面时进行的权限过滤:

如果你没有登陆,就不给你权限去访问除主页外的其他页面。

package cn.hncu.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginFilter implements Filter{@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {HttpServletRequest req = (HttpServletRequest) request;if(req.getSession().getAttribute("user")==null){HttpServletResponse resp = (HttpServletResponse) response;resp.sendRedirect(req.getContextPath()+"/index.jsp");}else{//放行chain.doFilter(request, response);}}@Overridepublic void destroy() {}}

MySessionListener
有用户来访问时,我们就通过监听器去监听session的创建与销毁,在这里,我们认为一个session就是一个用户!

package cn.hncu.listeners;import java.util.Collections;
import java.util.HashMap;
import java.util.Map;import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;public class MySessionListener implements HttpSessionListener{@Overridepublic void sessionCreated(HttpSessionEvent se) {Map<String, HttpSession> onLines = (Map<String, HttpSession>) se.getSession().getServletContext().getAttribute("onLines");if(onLines==null){//第一个来访问的onLines = Collections.synchronizedMap(new HashMap<String, HttpSession>() );//使用同步技术的Mapse.getSession().getServletContext().setAttribute("onLines", onLines);}onLines.put(se.getSession().getId(), se.getSession());}@Overridepublic void sessionDestroyed(HttpSessionEvent se) {Map<String, HttpSession> onLines = (Map<String, HttpSession>) se.getSession().getServletContext().getAttribute("onLines");//这里也要防范好!多线程,多个管理同时踢一个人的时候,如果不防范就会出问题if(onLines.containsKey( se.getSession().getId() )){onLines.remove( se.getSession().getId() );}}}

LoginServlet
用于判断用户登录与设置管理员的servlet。

package cn.hncu.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import cn.hncu.domain.User;public class LoginServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String name = request.getParameter("name");if(name!=null && name.trim().length()>0){User user = new User();user.setName(name);//用user作为参数到后台登录,这里我们简化了,直接假设登录成功if(true){Random r = new Random();int a = r.nextInt(2);if(a%2==0){user.setAdmin(true);}else{user.setAdmin(false);}}request.getSession().setAttribute("user", user);}response.sendRedirect(request.getContextPath()+"/index.jsp");}}

LogOutServlet
用于用户的安全退出!

package cn.hncu.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LogOutServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//用户安全退出很简单,我们在服务器端移除用户的session就可以了request.getSession().invalidate();response.sendRedirect(request.getContextPath()+"/index.jsp");}
}

ShowServlet
显示所有用户信息时的servlet,需要把信息全部封装到request这个容器中,再转发到前台jsp显示的页面。

package cn.hncu.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class ShowServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {Map<String, HttpSession> onLines = (Map<String, HttpSession>) getServletContext().getAttribute("onLines"); List<Map<String, Object>> lists = new ArrayList<Map<String,Object>>();SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//遍历onlines,针对每个session对象封装一个map(信息包含:name,createTime,lastAccessTime,ip),把该map添加到list当中Iterator<Entry<String, HttpSession>> it = onLines.entrySet().iterator();while(it.hasNext()){Entry<String, HttpSession> en = it.next();Map<String, Object> m = new HashMap<String, Object>();m.put("id", en.getValue().getId() );m.put("user", en.getValue().getAttribute("user"));String creationTime = sdf.format(new Date(en.getValue().getCreationTime()));m.put("creationTime", creationTime);String lastAccessTime = sdf.format( new Date(en.getValue().getLastAccessedTime()) );m.put("lastAccessTime", lastAccessTime);//注意,该ip数据是在CharsetFilter中封装的m.put("ip", en.getValue().getAttribute("ip"));lists.add(m);}request.setAttribute("onLines", lists);request.getRequestDispatcher("/jsps/show.jsp").forward(request, response);}
}

show.jsp
前台在线用户的显示页面,会员和管理员看到的页面是不同的,管理员可以踢人。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>在线人信息管理</title><style type="text/css">table{border: 1px solid red;border-collapse: collapse;/*设置单线-线合并*/width: 80%;}td{border: 1px solid red;padding:3px;}.header{background: gray;}</style></head><body><h2>以下是所有在线用户信息</h2>   <table><tr class="header" ><td>姓名</td>  <td>上线时间</td>  <td>最后访问时间</td> <td>IP</td> <td>操作</td></tr><c:forEach items="${requestScope.onLines}" var="map"><tr><td><c:if test="${empty map.user}" var="boo">游客                  </c:if><c:if test="${!boo}">${map.user.name}</c:if></td><td>${map.creationTime}  </td><td>${map.lastAccessTime}</td><td>${map.ip }           </td><td><c:if test="${!boo&&user.admin}"><a href="<c:url value='/servlet/KickOutServlet?id=${map.id}'/> " >踢出${map.user.name}</a></c:if></td></tr></c:forEach></table><br/>网站访问量:${count}</body>
</html>

KickOutServlet
管理踢人时请求的servlet,在这里我们把被踢的人的session从服务器端移除就可以了。但是注意防范一下,那个被踢者是否已经被踢走了、

package cn.hncu.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class KickOutServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();String id = request.getParameter("id");Map<String, HttpSession> onLines = (Map<String, HttpSession>) getServletContext().getAttribute("onLines");if(onLines.containsKey(id)){HttpSession session = onLines.get(id);//得到该sessionsession.invalidate();//移除该sessionout.println("该用户已被踢出!");}else{out.println("该用户已经不存在!");}}
}

user
JavaBean,在这里,我就是简单的封装了一个JavaBean使用了。我们的知识点并不是这里。

package cn.hncu.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;public class KickOutServlet extends HttpServlet {public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();String id = request.getParameter("id");Map<String, HttpSession> onLines = (Map<String, HttpSession>) getServletContext().getAttribute("onLines");if(onLines.containsKey(id)){HttpSession session = onLines.get(id);//得到该sessionsession.invalidate();//移除该sessionout.println("该用户已被踢出!");}else{out.println("该用户已经不存在!");}}
}

web.xml
注意啊!无论是servlet还是监听器,过滤器!一定要记得配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"><display-name></display-name> <listener><listener-class>cn.hncu.listeners.MyServletContextListener</listener-class></listener><listener><listener-class>cn.hncu.listeners.MySessionListener</listener-class></listener><servlet><servlet-name>LoginServlet</servlet-name><servlet-class>cn.hncu.servlet.LoginServlet</servlet-class></servlet><servlet><servlet-name>LogOutServlet</servlet-name><servlet-class>cn.hncu.servlet.LogOutServlet</servlet-class></servlet><servlet><servlet-name>ShowServlet</servlet-name><servlet-class>cn.hncu.servlet.ShowServlet</servlet-class></servlet><servlet><servlet-name>KickOutServlet</servlet-name><servlet-class>cn.hncu.servlet.KickOutServlet</servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/LoginServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>LogOutServlet</servlet-name><url-pattern>/servlet/LogOutServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>ShowServlet</servlet-name><url-pattern>/servlet/ShowServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>KickOutServlet</servlet-name><url-pattern>/servlet/KickOutServlet</url-pattern></servlet-mapping><filter><filter-name>charset</filter-name><filter-class>cn.hncu.filter.CharsetFilter</filter-class></filter><filter><filter-name>login</filter-name><filter-class>cn.hncu.filter.LoginFilter</filter-class></filter><filter-mapping><filter-name>login</filter-name><url-pattern>/servlet/*</url-pattern><url-pattern>/jsps/*</url-pattern></filter-mapping><filter-mapping><filter-name>charset</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>
</web-app>

演示结果:
登录之前显示的主页:
未登录的时候,是无法进入显示所有在线用户的,用过滤器拦截了。
这里写图片描述
登录之后显示的主页:
这里写图片描述
管理员登录后显示的在线人信息
如果不是管理员登录后,最后的操作时不会显示的。
这里写图片描述
完整的项目链接:
https://github.com/chenhaoxiang/Java/tree/master/myOnlinesWeb2

myOnlinesWeb2.zip压缩文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_779358.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宝塔开启root_宝塔面板重大安全bug,导致一些网站甚至一些gov网站数据库被人恶意删除...

宝塔面板linux7.42&#xff0c;7.5.14测试版&#xff0c;windows6.8版本受影响&#xff0c;其他的版本没有这个问题。https://bbs.zsxwz.com/thread-3223.htmphpmyadmin授权漏洞&#xff0c;导致无需验证就可以直接登录数据库。这个问题应该存在挺久的了&#xff0c;查了一下自…

.cc是什么文件_网站服务器应该如何有效做到防御CC?

市面上普遍两种攻击模式CC攻击和DDOS攻击,DDOS攻击这个是只能通过硬件防护墙来防护的&#xff0c;CC攻击比较麻烦他是需要部署策略才能防御的&#xff0c;接下来具体和大家介绍下CC攻击是一个什么样类型的攻击和解决办法CC攻击攻击原理&#xff1a;简单解释下 攻击者控制一部分…

话说“武汉真爱医院”负面信息被百度毫不留情的给收录了|网站入侵

今天下午上班时正一如既往的敲着代码&#xff0c;做着手头待完成的工作&#xff0c;突然公司内部技术QQ群弹出消息&#xff0c;是头儿发的&#xff0c;一张图&#xff0c;截图如下&#xff1a; 是一条在百度搜索中以“武汉真爱医院”为关键词搜索出来的信息&#xff0c;相信大家…

workerman php网站,workerman的入口文件

WorkerMan入口文件和nginxPHP-FPM下的PHP应用程序一样&#xff0c;WorkerMan中的应用程序也需要一个入口文件&#xff0c;入口文件名没有要求&#xff0c;并且这个入口文件是以PHP Cli方式运行的。 (推荐学习&#xff1a;workerman教程)入口文件中是创建监听进程相关的代码&…

网站提速-缓存技术(5)

在PHP中使用memcache 数据库&#xff08;select&#xff09;读出来的数据使用memcache。在会话控制session中使用<?php$memnew Memcache;$mem->connect("localhost",11211);$sql"select * from saisai";$mysqlinew mysqli("192.168.211.128&qu…

PyQt4安装方法 - - ITeye技术网站

PyQt4安装方法 - - ITeye技术网站PyQt4安装方法 博客分类&#xff1a;框架PythonQtJavaScriptPerlGoogle 现在使用Qt4做淘宝助理5.0&#xff0c;对Qt还不算熟悉有时候想快速的看看某个类或者方法的用途&#xff0c;又不想新建一个项目。这时候Python for Qt就派上用场了。虽然…

java创建文件目录在linux上不成功_宝塔面板利用宝塔面板在阿里云Ubuntu服务器上部署Wordpress博客网站详细图文教程...

啰嗦一句&#xff1a;请网站域名备案了再来折腾再把域名解析到购买的阿里云服务器公网IP宝塔Linux面板是提升运维效率的服务器管理软件&#xff0c;支持一键LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能。有30个人的专业团队研发及维护&#xff0c;经过20…

要匹配的标签和内容_SEO网站优化中标签的使用 - 神马网站优化软件

原出处&#xff1a;超级排名系统原文链接&#xff1a;SEO网站优化中标签的使用 - 超级排名系统网站优化的站内优化是非常重要的一个环节&#xff0c;当一个网站的页面数量达到一定量级的时候&#xff0c;要坚持把网站做的扁平化就显得尤为困难&#xff0c;由于站内资源的限制&a…

seo管理php源码_提高网站收录的方法,教你如何解决SEO的一大难题

提高网站收录是SEO的一大难题。非凡教育教你如何解决提高网站收录这一做SEO优化的难题。SEO优化大师教你提高网站收录的方法。稳定的更新配合网站收录量的提高可以有效提高网站的权重&#xff0c;使SEO见到成效。<br> (二维码自动识别)【上海非凡进修学院】上海淘宝培训|…

网站广告那点事儿

2019独角兽企业重金招聘Python工程师标准>>> 我一直用Chrome&#xff0c;前段时间也在纠结是不是用AdBlock吧网站广告屏蔽了&#xff0c;现在我还是启用了AdBlock&#xff0c;不过不是天天开启&#xff0c;3天左右关闭一次。 为什么要开启AdBlock 网站广告是网站的…

LaTeX入门系列之六(LaTeX网站汇总)

2019独角兽企业重金招聘Python工程师标准>>> 为了方便大家充分利用互联网学习和使用LaTeX&#xff0c;这里将相关的网络资源整理介绍一下&#xff0c;内容主要来自《Latex入门》-刘海洋-电子工业出版社一书。 1.CTAN&#xff08; the comprehensivie TeX Archive N…

建站学php还是java_建站用php还是java

建站用php还是java&#xff1f;建站用php&#xff0c;因为php是常用的网站编程语言&#xff0c;有全球超过81.7%的公共网站在服务器端采用PHP。而Java是一门面向对象编程语言&#xff0c;更适于系统程序的开发。phpPHP即“超文本预处理器”&#xff0c;是一种通用开源脚本语言。…

html打开百度自动搜索,网站添加百度自动推送代码的方法

今天有用户过来询问网站如何添加百度自动推送的代码以增加网站的收录数量&#xff0c;所以就水了这篇博文&#xff0c;如果你有此需求的话&#xff0c;不防按照此文章的方法来获取一下百度的推送代码。百度自动推送代码的作用图获取百度推送代码的方法1、打开百度搜索资源平台&…

hao123网站需要服务器吗,我已经设置“www.hao123.com”为我的主页了,可是打开IE还是“http://www.k986.com/”这个网站,也查不出毒,怎么办?...

安装IE 7 后&#xff0c;首次打开&#xff0c;会自动连接到 http://go.microsoft.com/fwlink/?LinkId74005 这个网页进行自定义设置&#xff0c;只有完成了自定义设置后&#xff0c;以后每次打开IE才会显示主页&#xff0c;不然会一直连接到这个网页。你可以这样设置&#xff…

钉钉获取免登授权码 php_钉钉扫码登录网站(两种方式实现)

钉钉扫码登录网站(两种方式实现)效果&#xff1a;源代码地址&#xff1a;https://github.com/jellydong/DingQrCodeLogin动手敲代码&#xff01;第一步&#xff0c;钉钉后台配置参考链接&#xff1a;获取appId及appSecret.点击进入钉钉开发者平台 的页面&#xff0c;点击左侧菜…

如何提高SEO优化团队效率

自2008年以来SEO这个词逐渐进入我们的视野&#xff0c;在经过多年的发展以及行业的发展涌现了许多优秀的SEO团队以及SEO优化公司&#xff0c;整个行业进行了新一轮的发展势头&#xff0c;但是也面临着对应的难题&#xff0c;也就是SEO优化团队效率的把控。(领导&#xff1a;小子…

记一次网站服务器迁移

背景&#xff1a;天翼云服务器经过两三个月的备案终于通过了&#xff08;打开了80,443,8080端口&#xff09;&#xff0c;所以准备给网站搬个新家。 记录一下本次迁移的过程吧&#xff0c;欢迎交流~ 0. 环境参数 操作系统&#xff1a;Debian 4.9.30-2deb9u5 (2017-09-19) x86_…

Winform模拟post请求和get请求登录网站

引言 最近有朋友问如何用winform模拟post请求&#xff0c;然后登录网站&#xff0c;稍微想了一下&#xff0c;大致就是对http报文的相关信息的封装&#xff0c;然后请求网站登录地址的样子。发现自己的博客中对这部分只是也没总结&#xff0c;就借着这股风&#xff0c;总结一下…

重建索引要多久_网站SEO优化:企业网站优化多久才有效果?

摘要&#xff1a;今天领高网站SEO优化想跟很多存在2个疑问的SEOer或者企业网站的管理者来聊聊&#xff0c;一个新的网站优化多久你才会被收录&#xff0c;第2个就是&#xff0c;为什么网站优化1个多月了&#xff0c;还是只收录了首页呐&#xff1f;网站SEO优化&#xff1a;企业…

Azure Traffic Manager 现可与 Azure 网站集成!

&#xfeff;&#xfeff;编辑人员注释&#xff1a;本文章由 WindowsAzure 网站团队高级专家级工程师 Jim Cheshire撰写。 AzureTraffic Manager 已经推出有一段时间&#xff0c;这是一种跨多个区域管理网站的有效方式。您可以将访问者路由至可以提供最佳性能的区域&#xff0c…