首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

SSH2完善整合流程

2012-09-23 
SSH2完美整合流程教程流程是重点,应熟练掌握。本教程做简单的账号注册演示,所用工具:Myeclipse-6.5、Struts-

SSH2完美整合流程

教程流程是重点,应熟练掌握。本教程做简单的账号注册演示,所用工具:Myeclipse-6.5、Struts-2.2.3、Hibernate-3.2、Spring-2.0、MySql,本教程出自北大青鸟成都锦江校区(原文链接 http://www.scbdqn.com/course/netjava/3172.html),转载请注明原处,谢谢。

一、利用工具快速搭建环境

1、新建一个名为ssh2的Web项目

SSH2完善整合流程2、把STRUTS2的依赖JAR包添加到项目工程中。用WinRar解压Struts-2.2.3\apps\struts2-blank.war,把Struts-2.2.3\apps\struts2-blank\WEB-INF\lib下面的所有JAR包添加到WEB工程的lib目录下。3、添加Hibernate的依赖库。选中刚创建的项目,右键》具体操作如图所示SSH2完善整合流程需要注意的地方已经勾选出来了,之后点下一步。SSH2完善整合流程这里选择否,待会我们手工来编写。SSH2完善整合流程这个不需要创建,因此不勾选。之后点完成。SSH2完善整合流程4、添加Spring的依赖库。选中刚创建的项目,右键》具体操作如图所示SSH2完善整合流程按下面的选择,不要急着下一步。SSH2完善整合流程下面的选择之后,然后下一步。SSH2完善整合流程

Folder一定要写成 WebRoot/WEB-INF,否则容易找不到

SSH2完善整合流程

不用它创建,然后点完成。

SSH2完善整合流程5、因为需要连接数据库,因此我们还需要数据库的依赖JAR包。去下载commons-dbcp-1.4.jar、commons-pool-1.5.6.jar、mysql-connector-java-5.0.8-bin.jar,并添加进去。由于Struts与Spring整合了,所以不要漏添加 struts2-spring-plugin-2.2.3.jar 文件,它位于 Struts-2.2.3\lib 目录下。

二、编写代码实现功能,处理常见异常

1、在 com.lingdus.bean 包下创建 Users.java 类

package com.lingdus.bean;

import java.io.Serializable;

public class Users implements Serializable {

??? private int id;

??? private String username;

??? private String password;

??? public int getId() {
??? ??? return id;
??? }

??? public void setId(int id) {
??? ??? this.id = id;
??? }

??? public String getUsername() {
??? ??? return username;
??? }

??? public void setUsername(String username) {
??? ??? this.username = username;
??? }

??? public String getPassword() {
??? ??? return password;
??? }

??? public void setPassword(String password) {
??? ??? this.password = password;
??? }
}

2、在 com.lingdus.bean 包下创建一个 Users.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
?"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
??? <class name="com.lingdus.bean.Users" table="scbdqn_users">
??????? <id name="id" column="id" type="int">
??????????? <generator column="username" type="string"></property>
??????? <property name="password" column="password" type="string"></property>
??? </class>
</hibernate-mapping>

3、在 com.lingdus.dao 下创建一个 UserDAO.java 文件

package com.lingdus.dao;

import com.lingdus.bean.Users;

public interface UserDAO {

??? public void doRegister(Users user);
}

4、在 com.lingdus.dao.impl 下创建一个 UserDAOImpl.java 文件

package com.lingdus.dao.impl;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.lingdus.bean.Users;
import com.lingdus.dao.UserDAO;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {

??? public void doRegister(Users user) {

??? ??? this.getHibernateTemplate().save(user);
??? }
}

5、在 com.lingdus.service 下创建一个 UserService.java 文件

package com.lingdus.service;

import com.lingdus.bean.Users;

public interface UserService {

??? public void doRegister(Users user);
}

6、在 com.lingdus.service.impl 下创建一个 UserServiceImpl.java 文件

package com.lingdus.service.impl;

import com.lingdus.bean.Users;
import com.lingdus.dao.UserDAO;
import com.lingdus.service.UserService;

public class UserServiceImpl implements UserService {

??? private UserDAO userDAO;

??? public UserDAO getUserDAO() {
??? ??? return userDAO;
??? }

??? public void setUserDAO(UserDAO userDAO) {
??? ??? this.userDAO = userDAO;
??? }

??? public void doRegister(Users user) {
??? ??? this.userDAO.doRegister(user);
??? }
}
7、在 com.lingdus.action 下创建一个 UserRegisterAction.java 文件

package com.lingdus.action;

import java.util.Map;

import org.apache.struts2.ServletActionContext;

import com.lingdus.bean.Users;
import com.lingdus.service.UserService;
import com.opensymphony.xwork2.ActionSupport;

public class UserRegisterAction extends ActionSupport {

??? private UserService service;

??? private Users user;

??? public UserService getService() {
??? ??? return service;
??? }

??? public void setService(UserService service) {
??? ??? this.service = service;
??? }

??? public Users getUser() {
??? ??? return user;
??? }

??? public void setUser(Users user) {
??? ??? this.user = user;
??? }

??? @Override
??? public String execute() throws Exception {
??? ??? this.service.doRegister(this.user);
??? ??? if (0 == this.user.getId()) {
??? ??? ??? return ERROR;
??? ??? }
??? ??? return SUCCESS;
??? }
}

8、在 WebRoot\WEB-INF\applicationContext.xml 中替换成以下内容

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
??? <bean id="dataSource"
??? ??? ref="dataSource" />
??? ??? <property name="mappingResources">
??? ??? ??? <list>
??? ??? ??? ??? <value>com/lingdus/bean/Users.xml</value>
??? ??? ??? </list>
??? ??? </property>
??? ??? <property name="hibernateProperties">
??? ??? ??? <props>
??? ??? ??? ??? <prop key="hibernate.dialect">
??? ??? ??? ??? ??? org.hibernate.dialect.SQLServerDialect
??? ??? ??? ??? </prop>
??? ??? ??? ??? <prop key="hibernate.show_sql">false</prop>
??? ??? ??? </props>
??? ??? </property>
??? </bean>
??? <bean id="userDAO" ref="sessionFactory"></property>
??? </bean>
??? <bean id="userService"
??? ??? ref="userDAO"></property>
??? </bean>
??? <bean id="springUserRegisterAction"
??? ??? ref="userService"></property>
??? </bean>
</beans>

9、在 src 目录下创建一个 struts.xml 文件,内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
??? "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
??? "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
??? <package name="ssh2" extends="struts-default">
??? ??? <action name="doRegister" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
??? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
??? <welcome-file-list>
??? ??? <welcome-file>index.jsp</welcome-file>
??? </welcome-file-list>
??? <filter>
??? ??? <filter-name>ssh2</filter-name>
??? ??? <filter-class>
??? ??? ??? org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
??? ??? </filter-class>
??? </filter>
??? <filter-mapping>
??? ??? <filter-name>ssh2</filter-name>
??? ??? <url-pattern>/*</url-pattern>
??? </filter-mapping>
??? <listener>
??? ??? <listener-class>
??? ??? ??? org.springframework.web.context.ContextLoaderListener
??? ??? </listener-class>
??? </listener>
</web-app>

11、创建 ssh2 数据库 Users 表,字段id(int,仅设置主键)、username(varchar(255))、password(varchar(255))

12、删除lib目录下的 asm-2.2.3.jar、asm-3.1.jar 文件。

13、编写 index.jsp 文件,具体如下

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
??? String path = request.getContextPath();
??? String basePath = request.getScheme() + "://"
??? ??? ??? + request.getServerName() + ":" + request.getServerPort()
??? ??? ??? + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
??? <head>
??? ??? <base href="<%=basePath%>">

??? ??? <title>My JSP 'index.jsp' starting page</title>
??? ??? <meta http-equiv="pragma" content="no-cache">
??? ??? <meta http-equiv="cache-control" content="no-cache">
??? ??? <meta http-equiv="expires" content="0">
??? ??? <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
??? ??? <meta http-equiv="description" content="This is my page">
??? </head>

??? <body>
??? ??? <form action="doRegister.action" method="post">
??? ??? ??? 账号:
??? ??? ??? <input type="text" name="user.username" />
??? ??? ??? <br />
??? ??? ??? 密码:
??? ??? ??? <input type="password" name="user.passoword" />
??? ??? ??? <br />
??? ??? ??? <input type="submit" value="注册" />
??? ??? </form>
??? </body>
</html>

14、搭建 Tomcat 并启动,看样子问题不大,教程就此结束。

2011-12-19 15:56:14 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\MyEclipse 6.5\bin;D:\java resource\apache-tomcat-6.0.33\bin
2011-12-19 15:56:14 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2011-12-19 15:56:14 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1123 ms
2011-12-19 15:56:14 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2011-12-19 15:56:14 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.33
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor host-manager.xml
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDescriptor
信息: Deploying configuration descriptor manager.xml
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory docs
2011-12-19 15:56:15 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory examples
2011-12-19 15:56:15 org.apache.catalina.core.ApplicationContext log
信息: ContextListener: contextInitialized()
2011-12-19 15:56:15 org.apache.catalina.core.ApplicationContext log
信息: SessionListener: contextInitialized()
2011-12-19 15:56:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory ROOT
2011-12-19 15:56:16 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory ssh2
log4j:WARN No appenders could be found for logger (org.springframework.util.ClassUtils).
log4j:WARN Please initialize the log4j system properly.
2011-12-19 15:56:17 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2011-12-19 15:56:27 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-12-19 15:56:28 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2011-12-19 15:56:28 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/47? config=null
2011-12-19 15:56:28 org.apache.catalina.startup.Catalina start
信息: Server startup in 13407 ms

?

本教程转自北大青鸟成都锦江校区,原文链接http://www.scbdqn.com/course/netjava/3172.html

热点排行