`
runfeel
  • 浏览: 927405 次
文章分类
社区版块
存档分类
最新评论

跑起来,第一个ssh

 
阅读更多
所使用的工具和环境。
jdk6+myeclipse6.5+tomcat6+mysql5+spring2.0+hibernate3+struts2

好了,开始我们的第一个ssh2之旅吧。

首先先分析一下我们的第一个ssh2项目的需求,简单的说就是有一张表单,让你填写用户名和密码,提交后存入数据库。就这么简单,呵呵。

第一步:。我们首先新建一张mysql数据表
sql如下
CREATE TABLE mytest.users (
id INT NOT NULL,
username VARCHAR(50),
password VARCHAR(50),
PRIMARY KEY (id)
数据表创建好后结构如下:

当然我已经有几天数据添加进去了



第二步
打开myeclipse,新建一个web项目,命名为ssh2-2, java ee规范我们选择5,如图




第三步 务必小心的一步
导入ssh2的各个jar,步骤如下:
选中当前的项目后,点击菜单烂的myeclipse---project capablities----add hibernate项,跳出如图


务必按照图示选择,尤其是copy checkde……一项,然后点击next,默认next,去掉specify database……复选框,next,去掉create session……复选框,finish。

再次选中选中当前的项目后,点击菜单烂的myeclipse---project capablities----add spring项,跳出如图



依然务必按照如是选择,jar文件选择如下5个:




点击next,
之后按下选择,务必,


next后finsh即可。
然后导入struts2的jar
如下5个放到lib下

然后放入我们的数据库驱动jar mysql-connector-java-5.0.8-bin.jar 没得话附件中有

至此,包都导入完毕

第四步
配置web.xml 代码如下 注意注释:
Xml代码复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <web-appversion="2.5"
  3. xmlns="http://java.sun.com/xml/ns/javaee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
  6. http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  7. <!--struts2的常规配置-->
  8. <filter>
  9. <filter-name>struts2</filter-name>
  10. <filter-class>
  11. org.apache.struts2.dispatcher.FilterDispatcher
  12. </filter-class>
  13. </filter>
  14. <filter-mapping>
  15. <filter-name>struts2</filter-name>
  16. <url-pattern>/*</url-pattern>
  17. </filter-mapping>
  18. <!--在web应用启动是自动形成一个spring容器-->
  19. <listener>
  20. <listener-class>
  21. org.springframework.web.context.ContextLoaderListener
  22. </listener-class>
  23. </listener>
  24. <welcome-file-list>
  25. <welcome-file>index.jsp</welcome-file>
  26. </welcome-file-list>
  27. </web-app>


第五步:
从视图层入手;在webroot目录下新建一个save.jsp文件
如下代码;
Jsp代码复制代码
  1. <%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>
  2. <%@taglibprefix="s"uri="/struts-tags"%>
  3. <!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">
  4. <html>
  5. <head>
  6. <title>MyJSP'save.jsp'startingpage</title>
  7. </head>
  8. <body>
  9. <s:formaction='saveUser'>
  10. <s:textfieldname="user.username"label="用名"></s:textfield>
  11. <s:textfieldname="user.password"label="密码"></s:textfield>
  12. <s:submit></s:submit>
  13. </s:form>
  14. </body>
  15. </html>

接下去顺水推舟,自然开发action,及控制层
新建包com.test.action.user
新建一个SaveUserAction.java 代码初步如下:
Java代码复制代码
  1. packagecom.test.action.user;
  2. importcom.opensymphony.xwork2.ActionSupport;
  3. importcom.test.bean.User;
  4. publicclassSaveUserActionextendsActionSupport{
  5. privateUseruser;
  6. publicUsergetUser(){
  7. returnuser;
  8. }
  9. publicvoidsetUser(Useruser){
  10. this.user=user;
  11. }
  12. @Override
  13. publicStringexecute()throwsException
  14. {
  15. returnSUCCESS;
  16. }
  17. }

于是,自然我们要新建一个bean
新建包com.test.bean 新建User.java
Java代码复制代码
  1. packagecom.test.bean;
  2. publicclassUser{
  3. privateIntegerid;
  4. privateStringusername;
  5. privateStringpassword;
  6. publicIntegergetId(){
  7. returnid;
  8. }
  9. publicvoidsetId(Integerid){
  10. this.id=id;
  11. }
  12. publicStringgetUsername(){
  13. returnusername;
  14. }
  15. publicvoidsetUsername(Stringusername){
  16. this.username=username;
  17. }
  18. publicStringgetPassword(){
  19. returnpassword;
  20. }
  21. publicvoidsetPassword(Stringpassword){
  22. this.password=password;
  23. }
  24. }


好了,现在我们先把控制层的action放在这里,开发业务层和持久层(DAO)

新建包com.test.dao
建类UserDAO.java
代码如下:
Java代码复制代码
  1. packagecom.test.dao;
  2. importjava.util.List;
  3. importcom.test.bean.User;
  4. publicinterfaceUserDAO
  5. {
  6. publicvoidsaveUser(Useruser);
  7. publicvoidremoveUser(Useruser);
  8. publicUserfindUserById(Integerid);
  9. publicList<User>findAllUsers();
  10. publicvoidupdateUser(Useruser);
  11. }
这是一个接口
在开发dao的实现类
新建包com.test.dao.impl
建类UserDAOImpl.java
代码:
Java代码复制代码
  1. packagecom.test.dao.impl;
  2. importjava.util.List;
  3. importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
  4. importcom.test.bean.User;
  5. importcom.test.dao.UserDAO;
  6. /**
  7. *
  8. *@authorAdministrator
  9. *这个dao试用了hibernate的数据库操作语句
  10. */
  11. publicclassUserDAOImplextendsHibernateDaoSupportimplementsUserDAO{
  12. /*
  13. *获取所有数据
  14. */
  15. publicList<User>findAllUsers(){
  16. Stringhql="fromUseruserorderbyuser.iddesc";
  17. return(List<User>)this.getHibernateTemplate().find(hql);
  18. }
  19. /*
  20. *获取指定的数据
  21. */
  22. publicUserfindUserById(Integerid){
  23. Useruser=(User)this.getHibernateTemplate().get(User.class,id);
  24. returnuser;
  25. }
  26. publicvoidremoveUser(Useruser){
  27. this.getHibernateTemplate().delete(user);
  28. }
  29. publicvoidsaveUser(Useruser){
  30. this.getHibernateTemplate().save(user);
  31. }
  32. publicvoidupdateUser(Useruser){
  33. this.getHibernateTemplate().update(user);
  34. }
  35. }

好了,数据持久层(dao)开发好了,按顺序,现在应该开发业务层了,
新建包com.test.service
建类UserService.java
代码:
Java代码复制代码
  1. packagecom.test.service;
  2. importjava.util.List;
  3. importcom.test.bean.User;
  4. publicinterfaceUserService
  5. {
  6. publicList<User>findAll();
  7. publicvoidsave(Useruser);
  8. publicvoiddelete(Useruser);
  9. publicUserfindById(Integerid);
  10. publicvoidupdate(Useruser);
  11. }
这是一个接口类
然后写实现类
新建包
com.test.service.impl
建类
UserServiceImpl.java
Java代码复制代码
  1. packagecom.test.service.impl;
  2. importjava.util.List;
  3. importcom.test.bean.User;
  4. importcom.test.dao.UserDAO;
  5. importcom.test.service.UserService;
  6. publicclassUserServiceImplimplementsUserService{
  7. privateUserDAOuserDao;
  8. publicUserDAOgetUserDao(){
  9. returnuserDao;
  10. }
  11. publicvoidsetUserDao(UserDAOuserDao){
  12. this.userDao=userDao;
  13. }
  14. //服务层的方法
  15. publicvoiddelete(Useruser)
  16. {
  17. this.userDao.removeUser(user);
  18. }
  19. publicList<User>findAll(){
  20. returnthis.userDao.findAllUsers();
  21. }
  22. publicUserfindById(Integerid){
  23. returnthis.userDao.findUserById(id);
  24. }
  25. publicvoidsave(Useruser)
  26. {
  27. this.userDao.saveUser(user);
  28. }
  29. publicvoidupdate(Useruser)
  30. {
  31. this.userDao.updateUser(user);
  32. }
  33. }


业务和持久层都开发好了,现在我们回到控制层action
修改action的代码如下:
Java代码复制代码
  1. packagecom.test.action.user;
  2. importcom.opensymphony.xwork2.ActionSupport;
  3. importcom.test.bean.User;
  4. importcom.test.service.*;
  5. publicclassSaveUserActionextendsActionSupport{
  6. privateUseruser;
  7. privateUserServiceservice;
  8. publicUserServicegetService(){
  9. returnservice;
  10. }
  11. publicvoidsetService(UserServiceservice){
  12. this.service=service;
  13. }
  14. publicUsergetUser(){
  15. returnuser;
  16. }
  17. publicvoidsetUser(Useruser){
  18. this.user=user;
  19. }
  20. @Override
  21. publicStringexecute()throwsException
  22. {
  23. this.service.save(this.user);
  24. returnSUCCESS;
  25. }
  26. }

修改struts.xml
如下
Xml代码复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEstrutsPUBLIC
  3. "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5. <struts>
  6. <packagename="user"extends="struts-default">
  7. <actionname="saveUser"class="saveUserAction">
  8. <resultname="success"type="redirect">listUser.action</result>
  9. <resultname="input">/saveUser.jsp</result>
  10. </action>
  11. </package>
  12. </struts>


至此,我们已经开发好了一个典型的mvc项目,现在的任务是将strust2和hibernate都放入spring容器管理,
现在我们的项目结构如下:




然后修改 applicationContext.xml
代码如下 注意注释
Xml代码复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beans
  3. xmlns="http://www.springframework.org/schema/beans"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  6. <!--配置数据源-->
  7. <!--一下分别配置了数据库驱动数据库路径用户名密码等-->
  8. <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource">
  9. <propertyname="driverClassName"value="com.mysql.jdbc.Driver"></property>
  10. <propertyname="url"value="jdbc:mysql://localhost:3306/mytest"></property>
  11. <propertyname="username"value="root"></property>
  12. <propertyname="password"value="123456"></property>
  13. <propertyname="maxActive"value="100"></property>
  14. <propertyname="maxIdle"value="30"></property>
  15. <propertyname="maxWait"value="500"></property>
  16. <propertyname="defaultAutoCommit"value="true"></property>
  17. </bean>
  18. <!--一下配置sessionFactory这个东西曾经是在hibernate中定义的如今交给了spring管理-->
  19. <beanid="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  20. <propertyname="dataSource"ref="dataSource"></property>
  21. <propertyname="hibernateProperties">
  22. <props>
  23. <propkey="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
  24. <propkey="hibernate.show_sql">true</prop>
  25. </props>
  26. </property>
  27. <propertyname="mappingResources">
  28. <list>
  29. <value>com/test/bean/User.hbm.xml</value>
  30. </list>
  31. </property>
  32. </bean>
  33. <!--以下使一些用到的类在使用类中均没有实例化这个类,都交给了spring管理-->
  34. <!--DAObean-->
  35. <beanid="userDao"class="com.test.dao.impl.UserDAOImpl"scope="singleton">
  36. <propertyname="sessionFactory"ref="sessionFactory"></property>
  37. </bean>
  38. <!--DAObean-->
  39. <beanid="userService"class="com.test.service.impl.UserServiceImpl">
  40. <propertyname="userDao"ref="userDao"></property>
  41. </bean>
  42. <beanid="saveUserAction"class="com.test.action.user.SaveUserAction">
  43. <propertyname="service"ref="userService"></property>
  44. </bean>
  45. </beans>




好了 到此为止,ssh2的整合已经完成了,发布后开启服务器吧,

不对,服务器开启后有异常


这里是包冲突问题
到项目的lib目录下,


删除选中的jar即可
ok了 可以测试了
http://localhost:8080/ssh2-2/save.jsp

来自http://www.360doc.com/content/09/0817/15/219800_4990487.shtml

分享到:
评论

相关推荐

    手把手教你实现第一个SSH项目

    ssh 项目 创建 教程 手把手教你实现第一个SSH项目

    我的第一个SSH后台api

    这是小弟近来第一次封装的SSH框架的一些常用后台方法代码API,可能会有bug,希望大家如果发现的话,可以多多提点!! 主要功能包括 1.一般的增删改查 2.页面静态化 3.导出EXCEL表格,导入EXCEL表内容到数据库 4....

    git 同一托管平台 多个sshkey 配置小助手.exe

    sshkey 加入开发这 分别加入了 三个 gitee 不同团队的项目 这个时候我们需要配置多个key在 Administrator(当前用户名)/.ssh/ 目录下 需要创建 config文件,git在这里有个坏处,多个相同域名 只会以第一个为准 ,后面...

    ssh框架 ssh框架 ssh框架 ssh框架 ssh框架 ssh框架 ssh框架 ssh框架

    ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ssh shhs ssh ...

    我的第一个SSH封装的后台api

    这是小弟近来第一次封装的SSH框架的一些常用后台方法代码API,可能会有bug,希望大家如果发现的话,可以多多提点!! 主要功能包括 1.一般的增删改查 2.页面静态化 3.导出EXCEL表格,导入EXCEL表内容到数据库 4.HTML...

    一个简单的ssh框架登陆小例子

    SSH(Secure Shell)框架是一个广泛使用的安全协议框架,主要用于在不安全的网络环境中提供安全的远程登录和其他服务。在这个简单的SSH框架登录小例子中,我们将探讨SSH的基本概念、其工作原理以及如何在Java应用...

    ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架

    ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ssh 框架 ...

    ssh.rar_vb ssh

    标题中的"ssh.rar_vb ssh"表明这是一个关于SSH(Secure Shell)协议的资源,而“vb”则指VB(Visual Basic),是一种常用的编程语言。这个压缩包可能包含了一个使用VB编写的SSH相关程序或者代码示例。描述中提到的是...

    ssh集成 ssh集成

    SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。SSH集成通常指的是将SSH功能与其他系统或工具整合,以实现更高效、更安全的远程管理和服务交互。在IT领域,SSH集成尤其常见...

    SSH框架整合图解(3个方案)

    SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3...

    SSH.NET-develop.zip_SSH.net_VI1Q_ssh

    "SSH.NET-develop.zip_SSH.net_VI1Q_ssh"这个压缩包很可能是SSH.NET库的一个开发版本或示例代码集合,供开发者学习和使用。 "VI1Q"可能是一个特定的版本标识或者与项目相关的密钥,而"ssh"标签则明确了这个包与SSH...

    ssh框架!绝对能跑起来 类库不能缺少!

    SSH框架,全称为Struts、Spring、Hibernate,是Java Web开发中的一个经典组合,用于构建高效、可扩展的Web应用程序。这个组合的核心在于Struts作为MVC(模型-视图-控制器)架构的实现,Spring提供了依赖注入和事务...

    sshshell.zip

    它使用公钥加密技术来验证服务器身份,并为通信双方创建一个加密的隧道,确保数据传输的安全性。SSH的主要优势在于其安全性,比传统的FTP(File Transfer Protocol)更安全,因为FTP通常在明文中传输数据,容易受到...

    ssh1 ssh2 整合登录代码及说明

    SSH1和SSH2是两种流行的Java Web开发框架的简称,分别代表Struts1、Spring和Hibernate的第一代和第二代版本。这些框架的整合是构建基于Java的企业级应用程序时常用的技术组合,尤其在处理MVC(Model-View-Controller...

    基于Rust的SSH2客户端库设计源码

    这是一个基于Rust语言开发的SSH2客户端库,包含35个文件,其中主要文件类型包括19个Rust源文件、4个YAML文件、3个TOML文件、1个gitignore文件、1个gitmodules文件、1个Apache License文件、1个MIT License文件、1个...

    两个SSH2间免密码登录

    #### 第一步:修改被登录机的sshd配置文件 被登录机指的是服务器端,其配置文件位于`/etc/ssh2/sshd2_config`。具体步骤如下: 1. **启用Root登录**: - 将`PermitRootLogin`设置为`yes`,即取消该行前面的注释号`#...

    android 实现 ssh功能

    JSch是Java的一个SSH库,可以用于建立SSH连接、执行命令、文件传输等。在Android项目中,可以通过Gradle或Maven引入JSch库,然后调用其提供的API实现SSH功能。 4. **服务端功能**: 要使Android设备作为SSH服务器...

    Node.js-ssh2-一个SSH2客户端和服务器node.js模块

    在 Node.js 的生态系统中,`ssh2` 是一个强大的库,它提供了一个SSH2协议的客户端和服务器实现。这个模块使得在 Node.js 中进行远程操作、文件传输和自动化任务变得轻而易举。本文将深入探讨 `ssh2` 模块的核心概念...

Global site tag (gtag.js) - Google Analytics