`
yajie
  • 浏览: 206682 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多
提升网站性能的方式有很多,例如有效的使用缓存,生成静态页面等等。今天要说的就是生成静态页面的方式。这个也是我近期一直在搞的一个问题,近期在做使用html + servlet做个人网站,为什么是这2个东西呢?
 
      1、直接用servlet是为了保证网站能以最快的速度执行命令..个人总感觉像Struts hibernate spring之类的虽然方便但是效能带来的损耗不太能接收
      2、使用html同样是为了保证最快的反应速度,毕竟html 比jsp少了一层服务器执行.速度上要快的多
 
一、在这里要先说一下什么是页面静态化:
 
      简单的说,我们如果访问一个链接 http://abc.com/test.do,服务器对应的模块会处理这个请求,转到对应的jsp界面,最后生成我们想要看到的数据。这其中的缺点是显 而易见的:因为每次请求服务器都会进行处理,如果有太多的高并发请求,那么就会加重应用服务器的压力,弄不好就把服务器 搞down 掉了。那么如何去避免呢?如果我们把对 test.do 请求后的结果保存成一个 html 文件,然后每次用户都去访问 http://abc.com/test.html ,这样应用服务器的压力不就减少了? 
 
      那么静态页面从哪里来呢?总不能让我们每个页面都手动处理吧? 这里就牵涉到我们要讲解的内容了,静态页面生成方案... 我们需要的是自动的生成静态页面,当用户访问 http://abc.com/test.do,会自动生成 test.html ,然后显示给用户。
 
 
二、下面我们在简单介绍一下要想掌握页面静态化方案应该掌握的知识点
 
     1、 基础— URL Rewrite 
         什 么是 URL Rewrite 呢 ? URL 重写。用一个简单的例子来说明问题:输入网址http://www.abc.com/test.do  ,但是实际上访问的却是 http://www.abc.com/test.action,那我们就可以说 URL 被重写了。这项技术应用广泛,有许多开源的工具可以实现这个功能。 
 
     2、 基础— Servlet web.xml 
         如果你还不知道 web.xml 中一个请求和一个 servlet 是如何匹配到一起的,那么请搜索一下 servlet 的文档。这可不是乱说呀,有很多人就认为 /xyz/*.do 这样的匹配方式能有效。 
         如果你还不知道怎么编写一个 servlet ,那么请搜索一下如何编写 servlet。这可不是说笑呀,在各种集成工具漫天飞舞的今天,很多人都不会去从零编写一个 servlet了。 
 
三、基本的方案介绍

             其中,对于 URL Rewriter的部分,可以使用收费或者开源的工具来实现,如果 url不是特别的复杂,可以考虑在 servlet 中实现,那么就是下面这个样子: 
      

1
5
分享到:
评论

相关推荐

    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攻略(第二版 中文高清版).part1

    1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.3 ...

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

    1.1.2 解决方案 1 1.1.3 工作原理 3 1.2 配置Spring IoC容器中的Bean 4 1.2.1 问题 4 1.2.2 解决方案 4 1.2.3 工作原理 4 1.3 调用构造程序创建Bean 14 1.3.1 问题 14 1.3.2 解决方案 14 1.3.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...

    asp.net知识库

    ASP.NET 2.0 异步页面原理浅析 [1] [原] 自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格...

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

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

    Loadrunner报错日志

    1.Loadrunner报错日志: Action.c(13):错误-27727: Step download timeout (120 seconds) has expired when downloading resource(s). Set the "Step Timeout caused by resources is a warning" Run-Time Setting ...

Global site tag (gtag.js) - Google Analytics