【动态页面】(一)前提

最近由于业务需要,转到动态页面的研究上来,因为我们的系统分为五个子系统,本着灵活、高效的原则,想着把前台页面这一块抽出来,不同以往把JSP表单、控件写死,而是以灵活可配置的方式,让各个系统高效的运转。可能后面还会想着跟权限结合起来,让权限去控制各个资源的调用,当然了那是后话,可能用不了多长时间就会着手去做这件事。

在动态页面这一块,我们最终想实现的效果是不在前台把JSP写死,而是通过动态绑定的方式生成系统想要的页面。我负责的是生成表单这一块,具体的业务要求是其他的子系统把自己的实体打成Jar包,扔到我这里,我把Jar包解析处理,读出类名和属性名、长度、备注信息等,然后添加到数据库中留作使用,这样一来就不用把与自己系统不相干的实体放到自己的系统中,又向着系统高效、灵活、可配置的方向迈进了一步。

在我负责的部分,前期研究的就是查资料,如何解析Jar包,读出Jar包的类名、属性名、类名描述和字段名描述还有长度等信息。但是这个就犯难了,后来请教了大牛们,大牛给出的思路是用Java的反射机制,在下篇博客中我会重点讲解一下Java的反射机制。确定了用Java的反射机制去解析Jar包,下面就开始研究然后解析Jar包了。在这里面又涉及到了通过读注解的方式解读里面的属性,还涉及到了元注解,后面我们会单独拿出一两篇博客专门讲一下元注解以及如何自定义注解读Jar包的。在后面就是通过实体生成表单这部分功能看似很简单,但是逻辑很复杂,好在最后圆满完成了,我也会在后面把这部分的逻辑给大家理一下。

在接下来的几篇博客中我会重点围绕动态页面,将上面我刚刚讲到的内容一一给大家分享出来。好久没写系列博客了,下篇文章,我们先从Java反射机制开始讲起,敬请期待吧!

时间: 2024-08-05 11:13:15

【动态页面】(一)前提的相关文章

爬虫——模拟点击动态页面

动态页面的模拟点击: 以斗鱼直播为例:http://www.douyu.com/directory/all 爬取每页的房间名.直播类型.主播名称.在线人数等数据,然后模拟点击下一页,继续爬取 #!/usr/bin/python3 # -*- conding:utf-8 -*- __author__ = 'mayi' """ 动态页面的模拟点击: 模拟点击斗鱼直播:http://www.douyu.com/directory/all 爬取每页房间名.直播类型.主播名称.在线人数

python --selenium+phantomjs爬取动态页面广告源码

背景:利用爬虫,爬取网站页面广告元素,监控爬取元素的数目,定时发送监控邮件 #!/usr/bin/env python2.7 # -*- coding: utf-8 -*- ''' @xiayun @[email protected] #爬取网站内容,利用phantomjs:IP代理+修改UA+动态页面执行JS ''' from selenium import webdriver from selenium.webdriver.common.desired_capabilities import

python scrapy爬取动态页面

preface:最近学习工作之外,有个异性朋友需要爬取动态网页的要求,输入关键词爬取某个专利网站在该关键词下的一些专利说明.以往直接python urllib2可破,但是那只是对于静态网页可破,但是对于用js等其他的生成的动态网页的话,则貌似不行(没试过).然后在网上找了些资料,发现scrapy结合selenium包好像可以.(之所以这么说,暂时卤主也还没实现,先记录下来.) #=====================根据官网中简单的介绍作个人理解=======================

Kooboo中怎么新增一个关联的Details 动态页面。

Kooboo中怎么新增一个关联的Details 动态页面. 有几个要点: 1. Sub Page的Parent Page 必须是英文书写.如果是中文会出现找不到页面 500错误 2. 要在Page Mapping中设置 url和page的关联 3. page要改成dynamices的. Dynamic pages I A dynamic web page is a kind of web page that has been prepared with fresh information (co

c#抓取动态页面WebBrowser

在ajax横行的年代,很多网页的内容都是动态加载的,而我们的小爬虫抓取的仅仅是web服务器返回给我们的html,这其中就 跳过了js加载的部分,也就是说爬虫抓取的网页是残缺的,不完整的,下面可以看下博客园首页 从首页加载中我们看到,在页面呈现后,还会有5个ajax异步请求,在默认的情况下,爬虫是抓取不到这些ajax生成的内容的, 这时候要想获取就必须调用浏览器的内核引擎来下载这些动态页面,目前内核引擎三足鼎立. Trident: 也就是IE内核,WebBrowser就是基于该内核,但是加载性内比

Nodejs基于Express4的动态页面静态化

上个星期在慕课网上提了个问:Express4开发的动态页面访问好慢的说?不幸的是并没有得到可行的回答,周末自己折腾了一番,一并将小站(花满楼)的几个页面全部静态化了:事后想了想,虽不是什么特别标准好的搞法,但纠结这么久了,这个问题终于有办法了,还是有些欣慰的: 一开始页面都是动态的,由jade模板render出来的,可不明白为什么不论页面内容多少,打开都至少要一秒多...:后来专门弄个站点作为静态资源站,缓存加gzip(Nodejs打造静态资源服务器与文件上传):OK,静态资源现在没啥大问题了:

Asp.net动态页面静态化之初始NVelocity模板引擎

Asp.net动态页面静态化之初始NVelocity模板引擎 静态页面是网页的代码都在页面中,不须要运行asp,php,jsp,.net等程序生成client网页代码的网页,静态页面网址中一般不含"?"."="."&"等特殊符号. 静态页面不能自主管理公布更新的页面,假设想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件改动(通过fso等技术例外) 常见的静态页面举例:.html扩展名的..htm扩展名的. 注意:静态页面并

Asp.net动态页面静态化之include和parse区别

Asp.net动态页面静态化之include和parse区别    #include就是在模版中在将其他模版包括进来,就好比网站的头部,尾部,广告模版等等,这些内容都是相同的时候,就可以做成一个单独的模版供各处引用. #parse的用法跟#include相类似,如果将上面的代码改成#parse之后,效果是一样的,#parse的特殊功能在于,它可以解析Nvelocity元素,比如,body.html 模版使用Nvelocity变量 $body ,如果使用#parse引用head.html和foot

Asp.net动态页面静态化之输出对象属性(实体关联)

Asp.net动态页面静态化之输出对象属性(实体关联) 模板引擎不单单可以输出单一的数据,还能直接输出对象的属性 using System; using System.Collections.Generic; using System.Linq; using System.Web; using NVelocity.Runtime; using NVelocity; using NVelocity.App; namespace czbk { /// <summary> /// Handler2