actionerror/>
2)在我们已经建好的struts.xml中来配置登录的action。
这里定义登录action的名字为login,配置代码如下:
xml version="1.0" encoding="UTF-8" ?
>
DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http:
//struts.apache.org/dtds/struts-2.0.dtd">
index.jsp
login.jsp
login.jsp
3)下面就来编写具体的action类了。
代码如下:
1package test;
2import com.opensymphony.xwork2.ActionSupport;
3public class LoginAction extends ActionSupport {
4 public String username;
5 public String password;
6 public String execute(){
7 if(!
username.equals("admin")){
8 super.addFieldError("username", "用户名错误!
");
9 return ERROR;
10 }
11 if(!
password.equals("001")){
12 super.addFieldError("password", "密码错误!
");
13 return ERROR;
14 }
15 return SUCCESS;
16 }
17 public void validate(){
18 if(username==null||username.length()==0){
19 super.addActionError("用户名不能为空");
20 }
21 if(password==null||password.length()==0){
22 super.addActionError("密码不能为空");
23 }
24 }
25}
26
4)好了,一个Action就创建完成了,重启tomcat测试一下吧。
如果第一次使用struts,你可能你明白上面的代码,以后慢慢学习即可,现在先来看一下效果吧。
打开登录页面http:
//localhost:
8080/test/login.jsp,输入正确或错误的用户名和密码,看看有什么提示。
4配置Hibernate
4.1基础配置
1) 导入最小jar包,即使用Hibernate3所必需的jar包。
下载hibernate-distribution-3.3.1.GA解压后,必需jar包都在lib"required目录下。
必需jar包如下:
✧ hibernate3.jar-----------------------------核心类库
✧ antlr-2.7.6.jar-----------------------------代码扫描器,用来翻译HQL语句
✧ commons-collections-3.1.jar-----------ApacheCommons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大
✧ dom4j-1.6.1.jar----------------------------是一个Java的XMLAPI,类似于jdom,用来读写XML文件的
✧ javassist-3.4.GA.jar-----------------------Javassist字节码解释器
✧ jta-1.1.jar------------------------------------标准的JTAAPI。
✧ slf4j-api-1.5.2.jar
✧ slf4j-nop-1.5.2.jar
1) 创建Hibernate配置文件。
在WEB-INF"calsses目录下(工程的src包下)新建hibernate.cfg.xml。
这是hibernate连接数据库的配置文件。
这里以连接Oracle为例:
xml version='1.0' encoding='UTF-8'?
>
DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"
oracle.jdbc.driver.OracleDriver
jdbc:
oracle:
thin:
@192.168.0.141:
1521:
TEST
TEST
test
test
org.hibernate.dialect.Oracle9Dialect
true
1) 创建Session工厂类HibernateSessionFactory。
让我们先了解一下Session,Hibernat对数据库的操作是通过Session来实现的,这里的session不同于页面间传递参数的session,而是类似于JDBC中的Connection。
Session是Hibernate运作的中心,对象的生命周期、事务的管理、数据库的存取都与session息息相关。
而Session是由HibernateSessionFactory创建的,是线程安全的,可以让多个执行线程同时存取HibernateSessionFactory而不会有数据共享的问题,但不能让多个线程共享一个Session。
HibernateSessionFactory可以用myeclispe自动创建,这里就不贴出代码了。
注意:
别忘了把数据库驱动包引入到工程中。
对于oracle是class12.jar。
4.2示例
这个自己去测试一下吧。
5配置Spring2.5
5.1基础配置
1) 导入spring包。
下载spring-framework-2.5.6并解压后,在spring-framework-2.5.6"dist目录下找到spring.jar,引入到工程中。
说明:
spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。
除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。
这里,为了使用方便,我们引入整个spring.jar。
2) 配置web.xml文件。
Jar包引入完成后,就开始配置spring了,首先修改web.xml文件,增加如下代码:
--
* 从类路径下加载spring的配置文件, 多个配置文件可以用逗号和空格区分
* classpath:
关键字特指类路径下加载-->
contextConfigLocation
classpath*:
spring/applicationContext*.xml
在这里,我们指定了spring配置文件的路径,即WEB-INF/classes/spring目录下的所有以applicationContext开头命名的xml文件。
3) 在src下面新建applicationContext.xml文件。
首先给这个文件加上spring的标头:
xml version="1.0" encoding="UTF-8"?
>
//www.springframework.org/schema/beans"
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xmlns:
aop="http:
//www.springframework.org/schema/aop"
xmlns:
tx="http:
//www.springframework.org/schema/tx"
xsi:
schemaLocation="http:
//www.springframework.org/schema/beans http:
//www.springframework.org/schema/beans/spring-beans-2.5.xsd
http:
//www.springframework.org/schema/aop http:
//www.springframework.org/schema/aop/spring-aop-2.5.xsd
http:
//www.springframework.org/schema/tx http:
//www.springframework.org/schema/tx/spring-tx-2.5.xsd">
注意:
标头是2.5的不要引入2.0,错了可能Spring就不能正确加载。
5.2示例
Spring基本配置完毕,让我们建个示例来测试一下吧,首先在test.spring包下创建两个java文件:
TUser.java、SpringTest.java。
TUser.java:
1package test.spring;
2
3public class TUser implements java.io.Serializable {
4 private String username;
5 private String allname;
6 private String address;
7
8 public String getUsername() {
9 return this.username;
10 }
11 public void setUsername(String username) {
12 this.username = username;
13 }
14 public String getAllname() {
15 return this.allname;
16 }
17 public void setAllname(String allname) {
18 this.allname = allname;
19 }
20 public String getAddress() {
21 return this.address;
22 }
23 public void setAddress(String address) {
24 this.address = address;
25 }
26}
27
SpringTest.java:
1package test.spring;
2
3import org.springframework.context.ApplicationContext;
4import org.springframework.context.support.ClassPathXmlApplicationContext;
5
6public class SpringTest {
7 public static void main( String[] args ) {
8 //加载spring配置文件,初始化IoC容器
9 ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext.xml");
10 //从容器 接管Bean
11 TUser user = (TUser) ac.getBean("TUser");
12 //输出欢迎信息
13 System.out.pri