`

java高并发-静态页面生成方案(3)

阅读更多

前面2章我们已经讲解了 java网页静态化的原理和最简单的实现,大家可以通过下面的文章链接进行查看
       java高并发-静态页面生成方案(1)

http://www.javady.com/index.php/87.html
       java高并发-静态页面生成方案(2)
       http://www.javady.com/index.php/95.html

 我们这章要讨论一下如何让用户遵守访问方式如何更新生成的html文件

如何让用户遵守访问方式
 
       在第二篇文章我们已经通过代码讲解,用户访问 xx_pageNumber_1.shtm,那么我们可以直接返回已经存在的html文件给用户,大大的减轻应用服务器的压力。可是如果客户直接访问 xx.do?pageNumber=1 呢?浏览器是客户的,如果他们要想恶意的请求你的网站你是没有办法控制的,难道我们要在页面上告诉访问者“请遵守访问方式,否则您将被如何如何”吗? 
       
       针对上面这种情况,我们需要在 index.do 中做点手脚。简单的说就是在我们自己转发请求的时候设置一个变量告诉被请求的地址我们是合法的,例如:xx.do?pageNumber=1后面追加一个 &my=true,这样的话就可以在被请求的action中检测是否有my这个变量,如果有说明合法,该怎么操作都行,如果没有就是违法的,直接跳转到错误页面。这样就能用最简单的方式控制用户的非法请求了.
   
接着我们讲解一下如何刷新这些html
 
   因为是一次性的生成Html,如果对应的数据发生变化,比如update或者delete情况,我们就应该更新相应的html文件,那如何对html文件进行更新呢?
   大体上有几个方式
 
   1、最笨的方式,手动刷新.
      例如:网站首页,当管理员更新一个功能之后,手动点击后台的一个按钮直接更新对应的html文件
   2、定时刷新。
      每隔一段指定的时间去更新所有已经存在的html文件,当然前提是你要先验证哪些已经生成了html文件.至于怎么验证?你可以在每生成一个文件的时候往内存的某个list或者某个文件,或者某个表写入当前生成的文件名..
   3、智能刷新
       先说一下,这个不好做,但是做好了很牛方便。
       管理员在后台的每个操作 增删改查,都进行监听,并在操作完成后去验证一下对应的文件是否存在,存在就更新,不存在就不操作. (要想实现这种方式,在进行框架设计的时候就要把这一模块考虑好,让后台的每一步操作都实现一个已经公共的被观察的对象.--可以查考一下观察者模式)

 

原创文章@www.javady.com  转载请标明出处 http://www.javady.com/index.php/98.html

3
0
分享到:
评论

相关推荐

    Java高并发:静态页面生成方案--UrlRewrite

    优点 一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面. 二:美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己...

    Java高并发高性能分布式框架从无到有微服务架构设计(1).doc

    Java高并发高性能分布式框架从无到有微服务架构设计 微服务架构模式〔Microservice Architect Pattern〕.近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将...

    高性能高并发服务器架构

    高并发的解决方法有俩种,一种是使用缓存、另一种是使用生成静态页面;还有就是从最基础的地方优化我们写代码减少不必要的资源浪费:( 1.不要频繁的new对象,对于在整个应用中只需要存在一个实例的类使用单例模式....

    Java思维导图xmind文件+导出图片

    高并发下的服务降级、限流实战 基于分布式架构下分布式锁的解决方案实战 分布式架构实现分布式定时调度 分布式架构-中间件 分布式消息通信 消息中间件在分布式架构中的应用 ActiveMQ ActiveMQ高可用集群企业...

    Java产生随机数的两种方式

    在java中,我们可以通过两种方式来获取随机数(generating a random number)一种是大家熟悉的java.lang.Math.Random()静态方法,另一种是创建java.util.Random对象。本文介绍了两种方法的使用过程。

    2小时候学会SpringBoot整合Thymeleaf生成静态页面

     课程目标: - 了解Thymeleaf的基本使用 - 实现商品详情页的渲染 - 知道页面静态化的作用 - 实现页面静态化功能 - 使用线程池实现静态页面生成 现在,我们的页面是通过Thymeleaf模板引擎渲染后返回到客户端。...

    java随机数

    ThreadLocalRandom也比其他任何处理高并发的方法要更快。 经验 Chris Marasti-Georg 指出: 1.Math.round(Math.random() * 10) 使分布不平衡,例如:0.0 - 0.499999将四舍五入为0,而0.5至1.499999将四舍五入为1。...

    java面试800题

    Q0043 java相关概念 "static:静态,无需实例化,可直接引用,全局只有一份copy,修饰变量和方法 final:最终的,不可继承、不可修改,修饰变量、方法、类 volatile:volatile变量表示保证它必须是与主内存保持一致,...

    java大作业设计报告-JAVA聊天室.doc

    JAVA程序设计 多人聊天室 设计目的 Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高 性能、多线程和静态的语言。本次课程设计旨在应用JAVA编程语言中的网络通信,多线 程,...

    【spring-boot-seckill分布式秒杀系统 v1.0】从0到1构建的java秒杀系统源码+安装说明

    1、前端优化:活动开始前生成静态商品页面推送缓存和CDN,静态文件(JS/CSS)请求推送至文件服务器和CDN。 2、网络优化:如果是全国用户,最好是BGP多线机房,减少网络延迟。 3、应用服务优化:Nginx最佳配置、Tomcat...

    精通并发与 netty 视频教程(2018)视频教程

    gRPC双向流式数据通信详解 28_gRPC与Gradle流畅整合及问题解决的完整过程与思考 29_Gradle插件问题解决方案与Nodejs环境搭建 30_通过gRPC实现Java与Nodejs异构平台的RPC调用 31_gRPC在Nodejs领域中的静态代码生成及...

    Spring攻略(第二版 中文高清版).part2

    11.6 为一个应用的领域类生成CRUD控制器和视图 454 11.6.1 问题 454 11.6.2 解决方案 454 11.6.3 工作原理 455 11.7 国际化(I18n)信息属性 458 11.7.1 问题 458 11.7.2 解决方案 458 11.7.3 工作原理...

    Spring攻略(第二版 中文高清版).part1

    11.6 为一个应用的领域类生成CRUD控制器和视图 454 11.6.1 问题 454 11.6.2 解决方案 454 11.6.3 工作原理 455 11.7 国际化(I18n)信息属性 458 11.7.1 问题 458 11.7.2 解决方案 458 11.7.3 工作原理...

    JTopCms站群内容管理系统 v3.0.rar

    内容静态化发布,不但支持生成html,更可通过生成shtml方式,精确控制页面局部静态化,最大限度提高站点并发访问性能以及可维护性。 3.内容模型自定义支持 支持自定义模型功能,内置完善的字段类型,所定义字段还...

    精通并发与netty视频教程(2018)视频教程

    31_gRPC在Nodejs领域中的静态代码生成及与Java之间的RPC通信 32_IO体系架构系统回顾与装饰模式的具体应用 33_Java NIO深入详解与体系分析 34_Buffer中各重要状态属性的含义与关系图解 35_Java NIO核心类源码解读与...

    精通并发与netty 无加密视频

    第31讲:gRPC在Nodejs领域中的静态代码生成及与Java之间的RPC调用 第32讲:IO体系架构系统回顾与装饰模式的具体应用 第33讲:Java NIO深入详解与体系分析 第34讲:Buffer中各重要状态属性的含义与关系图解 第35...

    2小时快速上手Freemarker电商项目商品详情页静态化

    本课程全程使用目前比较流行的开发工具idea进行开发,涉及到目前互联网项目中最常用的高并发解决方案技术, 如  dubbo,redis,solr,freemarker,activeMQ,springBoot框架,微信支付,nginx负载均衡,电商活动秒杀,spring...

    asp.net知识库

    第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet 特性 MySQL 和 .Net2.0配合使用 与DotNet数据对象结合的自定义数据对象设计 (二) 数据集合与DataTable 与DotNet数据对象...

    网络架构师148讲视频课程

    java架构师148讲视频教程 │ ├─1-148视频教程 │ 第01节:整体课程概览.flv │ 第02节:分模块、分工程管理.avi │ 第03节:多模块多Web应用合并War包.avi │ 第04节:Git基本原理和安装配置使用.avi │ 第05节...

    JAVA核心知识点整理(有效)

    25 JAVA8 与元数据.................................................................................................................................25 2.4. 垃圾回收与算法 .................................

Global site tag (gtag.js) - Google Analytics