最新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页面。

1 0
原创粉丝点击