我是从asp.net平台转到java平台的。基于asp.net平台开发网站的快速便捷性,工作几年来大小网站多少也写了6、7个。但是转到java后,因为是在一家大公司,而且做的功能也比较单一,局限于此,一直未能使用java来写一个web站点。后来正好大学同学从事淘宝电商,让我帮他弄一个网站,所以我就想到了使用java来开发这个站点,正好练手一下java顺便也是使用一下bae,因为很早之前就接触到了BAE,但是问题在于无法部署asp.net的网站,所以只好作罢,这次正好是一个难得的机会。
    考虑到当前这家公司的网站使用的框架是从一个网站开速开发的手脚架而来的,所以我私下花了一些时间来学习了一下这个框架和它的自动代码生成器,然后就构建了这么一个网站。总的来说,感触多的是使用java来写web项目,只要工具使用得当,开发效率也是大大的高。只是诟病在于总是各种配置spring配置、struts2的配置、数据连接池的配置、orm的配置等等。而且对于踏入java中没有多少人来指导的我来说,很多第一次碰到的错误,都得通过自己一遍一遍的查阅来解决,多少有些心酸。
    闲话说完了,那么现在开始剖析一下我的这个网站吧。网站是部署在BAE上的,一个淘宝信誉查询的网站http://www.taoxiaosha.com 网站已经死了好久每天pv180左右。
    在asp.net中建站,使用一些新的orm时,我们会提到一些名词,比如dbfirst or codefirst
那么在当前的工作下,我先手动建立好需要的数据表,自然就是dbfirst了,然后通过上面提到的代码自动生成工具来生成我们选择的架构的相关代码。啥意思呢,就是这个代码生成器可以根据你自己的需要生成基于SSI或SSH等架构。我选用的是SSI架构,那么代码生成后的树结构如下:

网站结构通俗易懂。这个就是生成的代码结构,个人感觉大项目也好,小项目也罢,都比较适合这种架构了,至少目前在我接触到的应用范围中。项目中给我们生成了实体,javabean,基础数据访问层,数据业务逻辑层。以及我们的action。当然我自己因为业务的需要增加了一个servlet层。那么通过这么一个架构,就实现了java web项目的实现。

这个网站是做淘宝信誉查询的,那么自然少不了抓淘宝数据的功能了,抓淘宝数据使用的jsoup。jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。之前在asp.net中抓百度知道和新浪问答的时候使用过HtmlAgilityPack。两者都是功能异常强大,不过前者是有点类似jquery中的选择器来获取dom节点, 而后者则是通过强大的xpath来实现数据抓取。

最后介绍完了就说下我使用的web开发框架:

该项目主页:http://code.google.com/p/rapid-framework

这个当中有附带自动代码生成器,稍加研究、修改,就能定制一个属于自己的代码生成器了。

记自己的第一个完整的java web项目的更多相关文章

  1. Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/72566261 本文出自[赵彦军的博客] Java web 开发填坑记 1-如何正确 ...

  2. 做一个完整的Java Web项目需要掌握的技能[转]

    转自:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目 ...

  3. 做一个完整的Java Web项目需要掌握的技能

    最近自己做了几个JavaWeb项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项 ...

  4. 一个完整Java Web项目背后的密码

    前言 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java ...

  5. Java Web项目发布及使用自定义域名

    详细讲解的网址: http://wenku.baidu.com/link?url=-ACZxKUcfrbhrMRUP3Ov-Q_c-Q9JPrA9D1fzHjHuJsWwZfRsVDVQ2qBtoY7 ...

  6. java web项目答辩答辩题总结(书本网上语言答辩+自己的语言答辩)

    答辩每个人的总分为1.5分.每个人主要问3个问题. 开发流程===>系统架构====>项目模块+功能===>项目得失重定向与转发:?九个隐式对象?get与post的区辨:?jsp有静 ...

  7. SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。

    熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...

  8. Java Web项目 配置 ueditor心得

    近期的JAVA项目,由于客户要求需要引入富文本编辑器. 参考了两款插件,一款是ckeditor,一款是ueditor. ckeditor在上传文件的时候必须配合ckfinder使用,而ckfinder ...

  9. 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

    http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...

随机推荐

  1. circos 绘制关系型图ribbon,并加入透明度

    luminance = lum80<<include colors_fonts_patterns.conf>><colors># r,g,b,a color def ...

  2. PyCharm2017破解版安装

    PyCharm2017破解版安装步骤: 1.右击软件压缩包选择解压到pycharm2017. 2.在解压文件夹里面找到pycharm-professional-171.3780.47,右击打开. 3. ...

  3. 【Unity】2.2 Unity编辑器中的常用菜单项

    分类:Unity.C#.VS2015 创建日期:2016-03-26 Unity 5.3.4编辑器共提供了7个主菜单项,这一节主要学习其中的常用项. 一.File 1.基本功能 New Scene:新 ...

  4. python小练习--函数调用函数,让对象具有能动性

    class Box:#定义一个类名为Box,类名后不必有括号,类包含类属性和类方法,这个类没有定义类属性 '''这是一个计算体积的类'''#这是这个类的__doc__属性,执行类后就可以在交互界面输入 ...

  5. where /group by/ having/ order by/

    1.order by 是 按字段 进行排序.. 字段后面可跟 desc 降序..asc 升序..默认为升序2.group by 是进行分组 查询3.having 和 where 都属于 条件过滤 区别 ...

  6. Ansible 笔记 (3) - 编写 playbook

    playbook 相当于多个命令的编排组合然后一起运行,类似写脚本.在学习 playbook 之前需要了解 yaml 格式. 编写playbook的步骤: 定义主机与用户 编写任务列表 执行 play ...

  7. OSC和GitHub中项目公钥和管理公钥

    对于开源托管网站GitHub大家应该不陌生吧,以前一直设置的是github上面的ssh公钥,一直没有发生什么问题,今天在遇到一个问题:git同时把代码push到两个远程仓库.所以就在github和os ...

  8. SSH整合 第三篇 Spring的加入

    1.思路和想法. 目前理解到的,觉得是的,可能的,应该这样的……………… Spring的两大核心是IoC和AOP Ioc:帮助实例化对象,加载到容器中,在注入到需要用到的地方.这样就可以减少在不同的方 ...

  9. 使用LVM对系统盘进行扩容

        不知道大家有没有碰到在安装CentOS时个,对系统每个挂载点分配多大容量比较合适的问题?如果挂载点容量分配大小,在某天不够用的时候怎么办:分配太大又存在浪费的情况.特别是在遇到系统盘特别小的时 ...

  10. DDA_为微分绘制直线算法

    DDA_为微分绘制直线算法 以步进坐标轴部长=1像素为单位,计算y=kx + b,绘制像素点(x, round(y)). 即步进坐标增长1, 另一坐标增长K或者1/k. 程序如下: //数值微分算法D ...