当前位置: 首页 > news >正文

qq强制聊天网站源码/佛山做网络优化的公司

qq强制聊天网站源码,佛山做网络优化的公司,建设设计网站公司,网站建设公司人员工资2019独角兽企业重金招聘Python工程师标准>>> 所谓“泛域名解析”是指:利用通配符 * (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。 例如支付宝的域名是www.alipay.com 域名下面有帮助中心help.alipay.com 、abc.alipay.com 等等子站点。有实…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

所谓“泛域名解析”是指:利用通配符 * (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。

例如支付宝的域名是www.alipay.com

域名下面有帮助中心help.alipay.com 、abc.alipay.com 等等子站点。有实力的公司一般都是通过硬件的方式来实现的

但是对于一般人,这么做投入太大,可以通过程序来实现伪的“泛解析”

比如:javaeye,目前就是通过代码来实现的泛解析。javaeye是ruby的,具体实现感兴趣的可以找找看,原理都是类似的

同样的java也可以实现。java实现方式。1,修改DispatcherServlet。2,通过fielter实现。

第一种方法,如果是自己来做重写DispatcherServlet也不是什么难事,但是这么做入侵性太大,性能好一点。

第二种方法,通过fielter实现,入侵相对小点。

现在主要发一下fielter实现的方式。

上图是示例程序的目录结构,通过mvn自动生成的。

核心的处理fielter

[java] view plain copy /**

  • 虚拟域名实现。<br>

  • <li>http://二级域名.域名/目标页面/参数

  • <li>http://blog.test.com ==> http://www.test.com/blog/

  • <li>http://blog.test.com/article/1633 ==> http://www.test.com/blog/article.htm?id=1633

  • @author yuezhen

  • @version $Id: DomainFielter.java,v 0.1 2010-3-17 下午01:21:59 yuezhen Exp $ */
    public class DomainFielter implements Filter {
    private static final String DOMAIN = "alipay-local.com";
    private static final String SEP = "/";

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
    throws IOException,
    ServletException {
    HttpServletRequest httpServletRequest = (HttpServletRequest) request;
    String domainName = "";

     // 获取域名  String serverName = request.getServerName();  // 获取请求路径  String path = httpServletRequest.getRequestURI();  // 判断是否是三级域名  int end = serverName.indexOf(DOMAIN);  // 获取domain  if (end != -1 && end != 0) {  domainName = serverName.substring(0, end - 1);  } else {  domainName = "www";  }  // 获取目标页面(可选,http://username.test.com/article/1633)获取后面的参数  String distPage = getDistPage(path);  String id = getId(path);  // domain不为空  if (domainName != null && !"".equals(domainName) && !"www".equals(domainName)) {  // http://blog.test.com/article/1633  ==>  http://www.test.com/blog/article.htm?id=1633  if (id != null && !id.equals("")) {  httpServletRequest.getRequestDispatcher(  SEP + domainName + SEP + distPage + ".htm" + "?id=" + id).forward(request,  response);  return;  } else {  // http://blog.test.com  ==>  http://www.test.com/blog/  httpServletRequest.getRequestDispatcher(domainName + SEP)  .forward(request, response);  return;  }  }  chain.doFilter(request, response);  
    

    }
    在fielter里面我们会做两件事情

http://blog.test.com ==> http://www.test.com/blog/ http://blog.test.com/article/1633 ==> http://www.test.com/blog/article.htm?id=1633

由于是代码层面实现的转发,所以需要存在一点的url规则。

[xhtml] view plain copy <filter>
<filter-name>DomainFielter</filter-name>
<filter-class>org.fielter.domain.test.DomainFielter</filter-class>
</filter>
<filter-mapping>
<filter-name>DomainFielter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>  <servlet-name>dispatcherServlet</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet  </servlet-class>  <load-on-startup>2</load-on-startup>  
</servlet>  <servlet-mapping>  <servlet-name>dispatcherServlet</servlet-name>  <url-pattern>/*</url-pattern>  
</servlet-mapping>  

web.xml中只需要将请求转发过来即可。并将url通过过滤器来转换

本例中还有velocity的layout使用方法

[xhtml] view plain copy <bean id="velocityConfigurer" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath">
<value>WEB-INF/page/</value>
</property>
</bean>
<bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityLayoutViewResolver">
<property name="suffix">
<value>.vm</value>
</property>
<property name="layoutUrl" value="layout/layout.vm"/>
<!-- if you want to use the Spring Velocity macros, set this property to true -->
<property name="exposeSpringMacroHelpers" value="true"/>
<!-- variable to override layoutUrl -->
<property name="layoutKey" value="layout"/>
<property name="screenContentKey" value="screen_content"/>

</bean>     

这样就velocity就可以很方便的使用了。

图片是访问页面的结果,一个blog的二级域就OK了

题外话:java还是太臃肿了,适合大企业,IDE很强大,各种语法错误,编译错误在早期能快速的被发现,当系统搭建完毕之后不必担心会有什么大问题,只需要招一堆程序员在上面搞业务就行了,处理复杂的业务是强项,不过确实是太臃肿了。

流行的三层架构,如果是web2.0用java搞会疯掉的,一个web层小问题的修改,哪怕一行代码,你要重新编译、部署。。。所以适当的把web层用脚本语言来做肯定效率是迅速的,比如,后端很复杂的逻辑全部java实现封装,前端的展示,数据的校验,交互全部可以通过脚本语言来实现,效率肯定是空前的高效。

但是也会带来一些新的问题(代码太过自由化不好控制,错误在初期不容易发现)至少目前国内还没有这方面结合的公司有应用的生产环境,但是如果想追求效率,这么做肯定是没问题的,至少我是这么认为的。当然公司可能会觉得招聘人员的成本增加了。本来招一个java的程序员所有都可以搞了,现在还要招不同的人做不同的事。

附:源码点此下载

源码为mvn的例子,只用在根目录,mvn jetty:run即可运行

因为是测试二级域名的解析,所以要配置host。

C:/WINDOWS/system32/drivers/etc/host文件中增加 127.0.0.1 blog.xxx.com photo.xxx.com来测试

转载于:https://my.oschina.net/u/1052192/blog/719886

http://www.lbrq.cn/news/1544005.html

相关文章:

  • 在什么网站可以做推广/大学生网络营销策划方案书
  • 深圳网站建设公司怎么做/做推广app赚钱的项目
  • 百度网站制作公司/长春seo推广
  • 上海网站设计开/seo排名推广工具
  • 连云港网站建设公司/seo全网推广营销软件
  • 柯城区住房和城乡建设局网站/网站收录提交
  • 视频号视频二维码/温州网站建设优化
  • 比较好的建站系统/如何制作公司网页
  • 网站架构基本知识/南京做网站的公司
  • 如何注册企业邮箱免费/百度有专做优化的没
  • wordpress类似股票行情/做网站怎么优化
  • 旅游景区网站建设的必要性/外贸seo是什么意思
  • 做波霸奶茶店网站/网站怎么优化关键词快速提升排名
  • 手机主题制作网站/网络营销方式有几种
  • 做百度关键词网站/网络服务合同纠纷
  • 做电缆好的网站/电商运营工作内容
  • 淘宝网站建设的目的/凤凰网全国疫情实时动态
  • 做微博推广的网站吗/站长之家是什么网站
  • jsp技术做网站有什么特点/营业推广促销
  • 个性定制网站有哪些/百度竞价推广怎么做效果好
  • 绿植行业做网站的/搜索引擎营销的名词解释
  • 肯德基网站建设方案/网站推广方案范文
  • 做系统之前的网站收藏在哪/泉州百度seo
  • 怎么帮客户做网站建站/深圳网络推广引流
  • 岳阳网格员/网站推广和网站优化
  • 商城网站开发那家好/在线网页制作工具
  • b2c网站制作/百度获客
  • 正宗营销型网站建设/淘宝关键词查询
  • 上海中远建设 网站/今日新闻头条新闻最新
  • 黑白网站模板/互联网广告精准营销
  • 20250819 强连通分量,边双总结
  • ListBoxes使得在专为灵活性和易用性设计
  • 基于深度学习的车牌检测识别系统:YOLOv5实现高精度车牌定位与识别
  • 【C++】 using声明 与 using指示
  • Critic-V: VLM Critics Help Catch VLM Errors in Multimodal Reasoning(CVPR 2025)
  • List容器:特性与操作使用指南