最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(一)Struts篇
来源:互联网 发布:那个软件看火影没广告 编辑:程序博客网 时间:2024/05/16 09:02
很久没做后台开发了,最近在总结工作的时候又想起了久违的SSH框架,没事闲的就搭了一个,用的是当前(2016-07-20)最新的版本,与大家分享。
开发工具:
eclipse-jee-neon-R-win32-x86_64
apache-tomcat-8.0.36
struts-2.3.29-all
hibernate-release-5.2.1.Final
spring-framework-4.3.1.RELEASE-dist
本节实现功能:struts框架搭建实现
以一个简单的登录功能为例,为了全面展示,我会建两个项目,shDemo和sshTest,shDemo用于整合struts+hibernate框架,sshTest用于实现struts+hibernate+spring框架,因为shDemo先整合好之后再引入spring要删改一些文件,变化较大,这样展示起来条理会比较清晰。
正文开始:
0.搭建环境
JDK什么的就没什么说的必要了,自己解决;用mysql建一个数据库,在里面建一张表,命名user,只有id、username、password三个字段就行,再造几条数据。
建表脚本:
create table user(id int auto_increment,username varchar(20) not null,password varchar(20) not null,primary key(id));
1.创建工程
用eclipse创建一个动态网络工程,命名为shDemo。
2.导入jar包
最简单的方法是找到struts-2.3.29-all下面app文件夹里面的struts2-blank.war包,将其解压,这是struts的一个demo,直接把里面lib文件夹中的包全考到项目中就可以。
注:
1.这里还缺少commons-logging-1.1.3.jar包,在struts-2.3.29-all\struts-2.3.29\lib文件夹下有,把它加上(没有它在这里也没影响,只是在后面spring里面要用到它)。
2.导入工程后别忘了build path。
3.写几个jsp文件
为了代码安全,我在WEB-INF文件夹下建立一个jsp文件夹用于放置jsp文件,创建login.jsp、home.jsp、register.jsp和error.jsp四个文件,login.jsp里面有一个登录表单,其他的都是空的,只把title写成相应的中文,以便区分。
login.jsp
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>登录页面</title></head><body><div align="center" style="color:#6DA500"><form action="login" method="post">账号:<input type="text" name="username"><br>密码:<input type="text" name="password"><br><input type="submit" value="登录"><br></form></div></body></html>
4.写web.xml文件
在WEB-INF目录下的web.xml中写以下代码:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>shDemo</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>/WEB-INF/jsp/login.jsp</welcome-file> </welcome-file-list></web-app>
5.写struts.xml文件
在src目录下创建struts.xml文件,写出jsp的具体映射。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><include file="struts-default.xml" /> <package name="default" namespace="/" extends="struts-default"> <action name="login" class="com.tzy.action.LoginAction"> <result name="success">/WEB-INF/jsp/home.jsp</result> <result name="register">/WEB-INF/jsp/register.jsp</result> <result name="error">/WEB-INF/jsp/error.jsp</result> </action> </package></struts>
6.创建接口文件
创建以下文件目录
再创建以下几个接口文件:
com.tzy.dao.LoginDao.java
package com.tzy.dao;import com.tzy.bean.User;public interface LoginDao {public User getUser(String username);}
com.tzy.service.LoginService.java
package com.tzy.service;public interface LoginService {public String checkUser(String username,String password);}
7.实现接口
由于本次只实现struts,所以只实现个假的LoginServiceImpl作为展示用,LoginDaoImpl在hibernate篇实现。
com.tzy.serviceImpl.LoginServiceImpl.java
package com.tzy.serviceImpl;import com.tzy.service.LoginService;public class LoginServiceImpl implements LoginService {@Overridepublic String checkUser(String username, String password) {//测试方法if("zhangsan".equals(username)){if("123".equals(password)){return "success";}else{return "error";}}else{return "register";}}}
8.实现LoginAction
com.tzy.action.LoginAction.java
package com.tzy.action;import com.opensymphony.xwork2.ActionSupport;import com.tzy.serviceImpl.LoginServiceImpl;public class LoginAction extends ActionSupport{/** * */private static final long serialVersionUID = 1L;private String username;private String password;LoginServiceImpl loginService;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;}@Overridepublic String execute() throws Exception {loginService = new LoginServiceImpl();return loginService.checkUser(username, password);}}
这样一个简单的Struts框架就搭建完成了,运行项目,输入账号zhangsan,密码123,可以得到home.jsp,故意输错账号或密码也会跳转到相应的register.jsp、error.jsp页面。
- 最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(一)Struts篇
- 最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(二)Struts+Hibernate篇
- 最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(三)Struts+Hibernate+spring篇
- IDEA 整合 Struts2+Spring4+Hibernate5
- SSH(Spring4+Struts2+Hibernate5整合)
- SSH整合(Spring4.3.7+Hibernate5.2.8+Struts2.5)
- spring4+struts2+hibernate5整合出现spring异常
- spring4整合hibernate5.1
- Spring4整合Hibernate5
- spring4+hibernate5+springmvc整合
- spring4整合hibernate5.1
- Spring4整合Hibernate5
- Spring4和Hibernate5整合
- 最新的SSH框架(Spring4.3.3 +Struts2.5.2+Hibernate5.2.3)搭建
- Struts2+Hibernate5+Spring4自学历程(1)
- SSH(Struts2+Spring4+Hibernate5)示例
- Struts2+Spring4+Hibernate5+Maven
- spring4.2.4+hibernate5.1.0+struts2.3.24整合jar包
- Android基础之Handler机制学习
- 视频录制+压缩+合并+清除沙盒缓存
- c++——指针在数组中的应用
- 成员变量、局部变量与静态变量对比
- 揭秘今日头条推荐10万+
- 最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(一)Struts篇
- zxing二维码的使用
- 【Deep Learning学习笔记】Efficient Estimation of Word Representations in Vector Space_google2013
- Python学习笔记(二)-NotePad++中文显示问题
- JavaScript学习笔记二十二:class继承
- 肝纤维化及肝硬化主要检测指标
- JAVA 异步ajax实现xml 文件上传 并且解析xml
- Varnish安装
- 云端基于Docker的微服务与持续交付实践