2019独角兽企业重金招聘Python工程师标准>>>

摘要

学习(Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程),尝试搭建ssh框架,也参考一下这篇(Eclipse 配置SSH 详解,附件UEL_SSH_Framework.rar);

因运行后404错误,遂选择集成好SSH框架的MyEclipse开发工具;

最终实现了Struts2框架的分页查看学员信息,Spring3和Hibernate3的尝试宣告失败。

1、本项目的环境

jdk1.7.0_21;

eclipse-jee-luna-R-win32-x86_64;

apache-tomcat-8.0;

2、创建表

create table user_test(  userId int auto_increment,  userName varchar(16) not null,  password varchar(16) not null,  gender int not null,  primary key(userId)  );

3、整合SSH

在Eclipse中创建一个Dynamic Web Project,本文项目名称为SSHProject;

SSH版本:

hibernate-release-4.3.0.Final http://hibernate.org/orm/downloads/

spring-framework-4.0.0 https://github.com/diguage/spring-framework

struts-2.3.16-all http://struts.apache.org/download.cgi#struts2316

下载之后三者分别为50.7M、52.1M、64.9MB;【好大哇】

3.1、配置structs

首先引入jar包

jar包所在目录 struts-*\lib

-logging-*.jar,Freemarker-*.jar,Ognl-*.jar,Struts2-core-*.jar,Xwork-*-io-*.jar,commons-fileupload-*.jar,javassist-*.ga.jar

解压 struts-*/apps/struts2-blank.war 到任意地方

复制 WEB-INF/web.xml 到 项目中的目录 WEB-INF

复制 WEB-INF/src/java/struts.xml 到 项目中的目录 src

在此说明一下 apps/struts2-blank.war/WEB-INF/lib 也存在,需要引入的jar包,可以直接引入这些jar包。

引入jar包的方式

1.复制所需包到 WEB-INF/lib 下

2.配置 Window->Preferences->Java->Build Path->User Libraries

新建User Libraries,Add External Jars

右键选中项目 Properties->Java Build Path->Add Libraries->User Library::选中新建的User Libraries,Finish

最后设置运行的时候复制jar包到 WEB-INF/lib 下,不然是运行的时候会报各种找不到包的情况

Properties->Deployment Assembly->Add->Java Build Path Entries::选中引入的User Libraries

3.2、配置Spring

引入jar包,jar包所在目录 spring-framework-*\libs;

编辑项目 WEB-INF/web.xml 文件,添加**;

在 src 下新建XML文件 spring-applicationContext.xml;

3.3、配置Hibernate

导入jar包,jar包所在目录 hibernate-search-*\dist\lib\*

找不到jta-*.jar

然后编辑 src 下XML文件 spring-applicationContext.xml;

在 src 下新建XML文件 hibernate.cfg.xml;

因为 hibernate.cfg.xml 有配置mysql因此需要引入 mysql 的jar包mysql-connector-java-*.jar;

over,运行该项目,Run on Server,结果是找不到页面,既然没办法调试那就执行4、5、6;

【3.1到3.3的诸多jar包也可以直接参考文献作者提供的源码点击这里,在WB-INF的lib目录下已经包含了全部jar包;

看起来好像没必要下载SSH的三个文件,直接用源码中提供的jar包和配置文件就ok喇】

4、创建Structs项目

事实上,按照作者的步骤完成之后,项目文件如下:

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>SSH Project</display-name><filter><filter-name>SSH</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>SSH</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>register.jsp</welcome-file></welcome-file-list>
</web-app>

structs.xml

<?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">
<struts><include file="struts-default.xml" /><package name="ynwi" extends="struts-default"><action name="register" class="com.ynwi.ssh.action.RegisterAction"><result name="input">/Register.jsp</result><result name="success">/Success.jsp</result><result name="error">/Fail.jsp</result></action></package>
</struts>

运行项目一直显示404页面找不到错误,可能是配置文件有点问题

暂时先,跳转到【7、使用myeclipse进行struct框架开发】

5、在Struts基础上整合Hibernate

6、在Struts + Hibernate项目中整合Spring

—————————————————分割线————————————————

7、使用myeclipse进行struct框架开发

安装myeclipse-10.7-offline-installer-windows.exe;

7.1与7.2参考www.MLDNjava.cn,进行到7.2.3宣告失败;

7.3参考百度文库某文,成功;

7.1、新建一个web项目demo;

注意:选中demo后,快捷键alt+shift+x调出Run on Server之后,会弹出对话框select the Server type,此时Apache目录下的tomcat版本从3.2到7.0(MyEclipse自带的是6.0),我之前下载的是8.0版本,所以无法下一步;

但是右键demo选择run as—myeclipse Server application则可以调用内置浏览器看到页面效果;

最好还是将demo部署到自带Tomcat下,在Server选项卡下启动Tomcat,然后在浏览器下运行。(选中tomcat右键-configure Server Connection可以配置端口号);

【也可以将独立安装的Tomcat下conf,server.xml中docBase配置为MyEclipse下网站目录,即可在外部调试】

7.2、Structs基础开发

7.2.1、Structs与mvc的关系;

传统MVC开发

7.2.2、Structs主要工作原理(其操作本质上是JSP、Servlet、JavaBean等技术的应用)

【核心配置文件:struts-config.xml】

传统MVC开发模式中,所有jsp页面需要使用Scriptlet进行输出,Struts提供各种常见页面标签库以减少页面中的Scriptlet代码。

MVC与Struts各个组件对应关系:

7.2.3、 第一个Struts程序StrutsFirst 【失败了】

新建web project的时候每次都要选java EE 6.0单选框,此web项目还么有Struts的支持能力;

接着右键StrutsFirst--Myeclipse--add Struts ……--选择Struts 2单选框;

在WebRoot下新建jsp文件,选择Standard JSP Struts 1.2/1.3(没Struts 2的选项);

其中

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>

表示已经为项目配置好了所有的标签(因为前面选得Struts 2,故报错(Can not find the tag library descriptor for "http://struts.apache.org/tags-bean"));将编码改为GBK;

【所有的处理类都是Action,每一个Action都要绑定ActionForm】,接着需要在src下的包右键new--Struts 1.3 Form Action JSP(现在小图标栏,右键配置如图)

(重新选择Struts 1.3的项目,Struts 2的src下无包);

此时在Add Struts Capabilities窗口,superclass选择ActionForm;

Properties--Add--(info);

【借助强大的MyEclipse

如果选择Struts2,可以很快有一个可以跑起来的demo;

本节选择Struts 1.3之后,为实现所需要的注册登录功能,配置挺麻烦的】

【配置完之后运行一直是400语法错误,不过好在有一个成功案例7.3】

7.3 实现Struts2分页显示功能(项目test)

工具:JDK1.6 + MyEclipse6.0 + Tomcat6.0 + MySQL5.0 + struts 2.0.11

原理:via百度文库(http://wenku.baidu.com/view/6b44cb72cfc789eb172dc898.html)

在开发web程序时,从数据库中取出来的数据一般都要分页显示在页面上,分页显示的方法非常多,有人写自定义标签,用自己写的标签进行分页显示,我个人觉得这是一种比较好的方法。下面是我用Struts2做的一个分页显示实例,基本的思路是:

把数据库表中的每一行数据封装成一个对象,用一个返回类型为List的方法返回这些对象,接着在Struts2的action里面定义一个List属性,用这个List来接收从数据库中查询出来并进行了封装的那些对象,然后通过Struts2的标签遍历List里的每个对象,并把这些对象里所包含的属性取出来展现在页面上。

类似的方法(http://my.oschina.net/SnifferApache/blog/297901)实现了mysql中表cfsn_news在页面的显示。

7.3.1 Mark一些小问题

问题1:将选项卡视图中server误关之后,运行demo每次都有错误弹窗,此时点击Deploy MyEclipse……的按钮没有反应

解决:删除MyEclipse工作区下\.metadata\.plugins\org.eclipse.core.runtime\.settings之中删掉名为com.genuitec.eclipse.ast.deploy.core.prefs的文件,重启MyEclipse即可(此处特别鸣谢@wangkaibin 同学)

问题2:代码写完之后运行,console一直报错:java.lang.ClassNotFoundException

解决:将连接mysql的jar包通过add external library添加到test中,无效;遂直接复制到WEB-INF的lib目录下,调试成功,页面可以分页显示数据库内容;

7.3.2 底层

数据库

drop database if exists page0803;create database page0803 ;use page0803;create table students (stu_id integer auto_increment,stuName varchar(255) not null,address varchar(255) not null,stuPhone varchar(255)not null,primary key(stu_id));insert into students(stuName,address,stuPhone) values('杨华林','长沙','13787825190');insert into students(stuName,address,stuPhone) values('李明清','天津','13787525190');insert into students(stuName,address,stuPhone) values('李小华','大连','13788451190');insert into students(stuName,address,stuPhone) values('郑小明','苏州','13787052188');insert into students(stuName,address,stuPhone) values('杨一新','西安','13787851190');insert into students(stuName,address,stuPhone) values('王新任','广州','13787056460');insert into students(stuName,address,stuPhone) values('谢小华','深圳','13787075550');insert into students(stuName,address,stuPhone) values('王建明','厦门','13788853690');insert into students(stuName,address,stuPhone) values('秦一生','北京','13788689236');insert into students(stuName,address,stuPhone) values('田翠林','杭州','13787655150');insert into students(stuName,address,stuPhone) values('陈小明','广州','13787623668');

编写PageDAO类,该类用于从数据库中取出所有的学员信息,把这些学员信息封装成一个Student对象并将其放入List中;

写不下了

由于要对数据库中的学员信息进行封装,所以需要编写一个JavaBean,即Student类;

写不下了

7.3.3 web层

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="
http://java.sun.com/xml/ns/j2ee
"xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
"xsi:schemaLocation="
http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
"><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>

web层的jsp文件,分别有index.jsp(点击跳转到show.jsp)、

show.jsp

<%@ page language="java" pageEncoding="UTF-8"%><%@ taglib uri="/struts-tags" prefix="s"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Struts2实现分页显示</title></head><body><div align="center"><table border="1"><tr><th>学号</th><th>姓名</th><th>地址</th><th>电话</th></tr><s:iterator value="students"><tr><td><s:property value="stu_id"/></td><td><s:property value="stuName"/></td><td><s:property value="address"/></td><td><s:property value="stuPhone"/></td></tr></s:iterator></table><s:url id="url_pre" value="show.action"><s:param name="pageNow" value="pageNow-1"></s:param></s:url><s:url id="url_next" value="show.action"><s:param name="pageNow" value="pageNow+1"></s:param></s:url> <s:a href="%{url_pre}">上一页</s:a><s:iterator value="students" status="status"><s:url id="url" value="show.action"><s:param name="pageNow" value="pageNow"/></s:url></s:iterator><s:a href="%{url_next}">下一页</s:a></div></body></html>

和error.jsp(显示一句话报错);

编写struts2的action来拦截用户的请求;

showAction.java写不下了
public String execute() throws Exception {
//核心方法students = pageDAO.queryByPage(pageSize, pageNow) ;return SUCCESS ;}

配置struts.xml文件,即action和响应结果页面之间的映射:

<?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
"><struts><package name="struts2" namespace="/" extends="struts-default"><action name="show" class="org.hnylj.web.ShowAction"><result name="success">show.jsp</result><result name="error">error.jsp</result></action></package></struts>

【Mark】

mysql数据库备份:mysqldump -u root -p page0803 >d:\page.sql

恢复:mysql -u username -p < d:\page.sql 数据库名
此处的“数据库名”指的是要备份要哪个数据库中

至此所有的工作已经完成。

在浏览器地址栏输入http://localhost:8080/test/index.jsp,回车即可看到一个链接,点击该链接即可看到一个可以进行上一页和下一页的学员信息列表。

转载于:https://my.oschina.net/SnifferApache/blog/297572

Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容相关推荐

  1. eclipse ssh mysql数据库_Eclipse搭建SSH环境实现Struts2分页显示mysql数据库表中内容...

    摘要 因运行后404错误,遂选择集成好SSH框架的MyEclipse开发工具: 最终实现了Struts2框架的分页查看学员信息,Spring3和Hibernate3的尝试宣告失败. 1.本项目的环境 ...

  2. php查询mysql显示在html表格中_php – 在网页上的HTML表格中显示MySQL数据库表中的值...

    我想从数据库表中检索值并在页面的html表中显示它们. 我已经搜索了这个,但我找不到答案,虽然这肯定是容易的(这应该是数据库的基础知识).我想我搜索过的词语具有误导性. 数据库表名称是票证,它现在有6 ...

  3. 服务器上搭建java环境,安装tomcat以及MySQL数据库-小白教程

    文章目录 前言 一.安装jdk,搭建java环境 二.安装MySQL 三.安装Tomcat 总结 前言 我第一次租服务器的时候也是从网上找方法,各种教程琳琅满目,太杂乱,我在这里做一个总结.我的系统是 ...

  4. qt 不显示 mysql 数据表中的内容_qt 数据库操作总结

    整理一下 QT 操作数据库的一些要点,以备以后的查询学习(主要是操作 mysql ). 转载于:https://www.cnblogs.com/lsgxeva/p/7852102.html 首先,要查 ...

  5. PHP + MySQL 学习笔记(三)--- 分页显示 MySQL 资料表,使用 PHP 程式做分页 page 画面输出,PHP\HTML\MySQL 的穿插使用

    我在 "PHP + MySQL 学习笔记(一)- 延续前期 HTML + CSS 规划 插入 PHP 程式做画面输出" 这篇笔记里做了一个卜卦的 HTML 画面,也做了一个 MyS ...

  6. 随机调用mysql数据库表值10条php_PHP随机显示mysql数据库中的数据

    随机显示MySQL数据库表中的数据,其实并不难,方法也多种多样. 最简单的方法是rand()随机取.例如:要从tablename表中随机提取5条记录,大家一般的写法就是 SELECT * FROM t ...

  7. grafana导入json文件没有数据_XAMPP客户端环境无法导入较大Mysql数据库文件的解决方法...

    一般我们本地的网站环境是使用的PHPSTUDY软件客户端,但是一般的MacOS下会使用XAMPP客户端,以前我在MAC上也是有使用过的,总感觉没有国产的软件好用所以就没有使用. 今天遇到有网友出现XA ...

  8. linux python开发环境sql数据迁移到mysql_linux环境下python怎样操作mysql数据库

    展开全部 linux环境下python怎样操作mysql数据库呢?方法如下: 首先在Linux环境下安装mysql-python 1.下载mysql-python 打开终端: cd /usr/loca ...

  9. ajax首页首页显示数据库,ajax显示mysql数据库

    ajax显示mysql数据库 内容精选 换一换 GaussDB(for MySQL)支持的数据库版本,如表1所示.GaussDB(for MySQL)支持内核小版本升级,内核小版本的升级涉及性能提升. ...

最新文章

  1. 未来物联网全栈开发 --JavaScript or Python?
  2. VTK:网格之SubdivisionDemo
  3. python手机号码正确编程_python 小练习之生成手机号码
  4. java导入数据 neo4j_java-neo4j-使用neo4j剩余图数据库进行批量插...
  5. mySQL 数据库工具问题总结
  6. 无法定位序数325于动态链接库SHDOCVW.dll的解决方法
  7. 读书笔记-《人为什么活着》
  8. 如何生成一个QRCode(二维码)
  9. adb小技巧之实现近似vim编辑器功能编辑android系统内部的文本文件
  10. java 自己实现连接池_JAVA自定义连接池原理设计(一)
  11. 竞品分析—微博PK微信
  12. vegan稀释曲线 基因丰度_基于OTU的稀释曲线(Rarefaction curves) + ggplot2
  13. Dev的panelcontrol
  14. 软件加入使用时间_Adobe CC 2020 系列软件更新(Adobe Zii 2020 5.2.1)| Mac软件天堂
  15. 在Java中,每个try块后面都必须紧跟catch块吗?
  16. git错误:exceeds file size limit of 100.0 MB remote: error: hook declined to update refs/heads/master
  17. Unity3d 坦克AI_自动寻怪,自动追击脚本参考
  18. js判断当前电脑是否安装flash插件
  19. 现实世界的映射与超越:电子游戏的叙事研究
  20. 记事本编写java代码出现中文乱码

热门文章

  1. Simple:Press
  2. Lapsus$ 组织攻击很多大厂都在合作的软件咨询公司 Globant
  3. 观点|通过短生命周期和最小权限原则保护软件供应链安全
  4. IOS基础学习日志(七)利用dispatch_once创建单例及使用
  5. windows curl ssl版本号编译
  6. [WildPackets.OmniPeek].OmniPeek.4.0.1
  7. Tip: 强制 Outlook 用户使用缓存模式
  8. 【Vegas原创】ProC环境搭建
  9. IOCP中的socket错误和资源释放处理方法
  10. linux中date命令设置系统时间的方法-转