最新eclipse整合Struts2.3.29+Hibernate5.2.1+Spring4.3.1(一)Struts篇

很久没做后台开发了,最近在总结工作的时候又想起了久违的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 {

	@Override
	public 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;
	}
	
	@Override
	public String execute() throws Exception {
		loginService = new LoginServiceImpl();
		return loginService.checkUser(username, password);
	}
}

这样一个简单的Struts框架就搭建完成了,运行项目,输入账号zhangsan,密码123,可以得到home.jsp,故意输错账号或密码也会跳转到相应的register.jsp、error.jsp页面。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值