我的师父黄裳@岳旭强曾经说过,“好的架构图充满美感”,一个架构好不好,从审美的角度就能看得出来。后来我看了很多系统的架构,发现这个言论基本成立。那么反观淘宝前面的两个版本的架构,你看哪个比较美?
显然第一个比较好看,后面那个显得头重脚轻,这也注定了它不是一个稳定的版本,只存活了不到半年的时间。2004年初,SQL Relay的问题解决不了,数据库必须要用Oracle,那从哪里动刀?只有换开发语...
Ubuntu开发Struts2应用(7、完成增删查改操作)
由于注重的是整合,所以这里没有写得很完善,没有事务处理,也没有处理业务逻辑的service层等,更适合初学者学习。
1、接口UserDAO以及实现类UserDAOImpl。主要是hibernate和spring的整合,提供数据增删查改的操作。
UserDAO.java
package com.linuxsight.dao;
import java.util.List;
public interface UserDAO {
public void insert(Object o) throws Exception;
public List<Object> list() th...
Ubuntu开发Struts2应用(6、整合hibernate和spring)
1 准备数据库。由于用到了hibernate,自然少不了数据库,我们这里建立一个简单的表以做演示,ubuntu下的mysql我们已经安装好了,用户名root,密码123456。
把s2sh.sql放到/home/linuxsight目录中
linuxsight@linuxsight-ODM:~$ pwd
/home/linuxsight
linuxsight@linuxsight-ODM:~$ mysql -uroot -p123456 < s2sh.sql
s2sh.sql
create database s2sh
character set 'utf8'
collate 'utf8_general_ci';
...
Ubuntu开发Struts2应用(5、自定义拦截器)
Struts2为我们提供了丰富的拦截器,而实现自定义拦截器也是容易的一件事。
拦截器必须是无状态的,原因是Struts2不能保证为每一个请求或者action创建一个实例,所以如果拦截器带有状态,会引发并发问题。
实际应用中处理权限问题是常见的,下面就以一个拦截器来判断处理用户是否登录而有权限去执行action的内容。
LoginInterceptor.java
package com.linuxsight.interceptor;
import com.opensymphony.xwo...
Ubuntu开发Struts2应用(4、文件上传)
文件上传这个功能在项目应用是非常常见的,这节说说Struts2如何实现文件上传。
Struts2使用开源项目Apache Jakarta Commons FileUpload和内建的FileUploadInterceptor拦截器实现文件上传
下面介绍代码:
FileUploadAction
package com.linuxsight.action;
import java.io.File;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.x...
Ubuntu开发Struts2应用(3、知识点记录)
本节记录了一些struts2的知识点。
1、设置开发调试
struts.properties
struts.devMode = true
添加struts2-config-browser-plugin-2.3.1.jar
地址访问:http://localhost:8080/struts2T1/config-browser/index.action
使用标签<s:debug/>显示
地址访问:
http://localhost:8080/struts2/linuxsight.action?debug=xml
http://localhost:8080/struts2/linuxsight.action?debug=console
2、在stru...
Ubuntu开发Struts2应用(2、第一个程序)
本节介绍在ubuntu上开发的一个struts2应用。
新建一个web项目,利用myeclipse9.1给我们提供的struts2支持,搭建环境。
这里注意不要勾选多余的jar包,我们只需要core
myeclipse9.1集成的Sturts版本是struts2.2.1
代码如下:
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-...
Ubuntu开发Struts2应用(1、环境搭建MyEclipse+MySQL)
本系列文章带来的是在Ubuntu11.10下开发Struts2程序学习过程所记录的滴滴点点,当中所写的也许不能算是学习的好教程,但所涉及的知识点相信会对学习Struts2有一定的帮助。
首先是在Ubuntu11.10搭建开发环境,相信大部分开发者都是在XP下完成的,比较少涉及Linux平台,如果你是用Ubuntu系统的,那可以看看本节内容。
1、安装myeclipse(由于myeclipse已经自带了Tomcat,所以我们不需要再去下载Tomcat了。)...
MyEclipse 9.x/8.x/7.x/6.x下载附注册码
目前MyEclipse的最新版已经到达9.1,虽然我不建议用最新版的MyEclipse,目前本人开发依然用最初的6.5.但下载MyEclipse也比较麻烦,因为官网下载被和谐,所以我觉得有必要把下载地址收集一下,以便需要时可以下载。
这里我收集了包括MyEclipse9.1/9.0/8.6/8.0/7.5/7.1/7.0/6.6/6.5各个版本的下载:
MyEclipse 9.1 下载地址:
Windows
http://downloads.myeclipseide.com/downloads/products/eworkbench/he...
解决org.hibernate.hql.ast.HqlToken
今在启动项目的时候出现了一个问题:
CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
项目是spring+hibernate+struts
系统是windows 2008 容器是weblogic10.3
不知是否和环境有关,项目移植过来就出现问题。
解决方法,在hibernate的配置文件加上:(由于项目是SSH组合,所以代码应加在spring的配置文件appicationContext.xml里。)
<prop
key="hibernate.query.fac...