如何在CentOS上搭建 Struts2+Spring+Hibernate的运行环境

如何在CentOS上搭建 Struts2+Spring+Hibernate的运行环境,第1张

Struts2+Spring+Hibernate是J2EE的最新流行框架。本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到

大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以我就决定总结一下我的搭建过程。给一些搭

建尚存问题的朋友提供帮助。

我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。

目前版本暂定为1.0,除了CRUD外还配置了表单验证框架JSValidation。功能都能很顺利的实现。

现在分享部分源码,来说明一些注意事项。

以下是部分搭建过程及源码:

1.先组合实现Hibernate3.2+Spring2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。

2.通过MyEclipse的向导方式,生成POJO类和对应的映射文件。

3.修改applicationContext.xml文件中<property name="mappingResources">元素的内容。

4.编写DAO接口和实现类。

5.修改applicationContext.xml文件,增加对Dao实现类的配置。

6.组合Struts2和Spring2.5,修改web.xml文件,增加struts2的所需要的过滤器配置。

7.增加struts2相应类库,增加struts2与spring的配置jar包。

8.拷贝struts.xml文件到src根目录下,再修改struts.xml文件,进行常量配置。

9.修改web.xml文件,配置Spring监听器,和上下文变量。并增加OpenSessionInViewFilter的设置。

10.写入action类。

11.配置struts.xml文件。

12.修改applicationContext.xml

13.编写Jsp文件。

14.加载运行项目

下面是关键文件的源码:

struts.xml源码:

步骤如下:

一、下载struts包

百度直接搜“struts2”,进入Apache官网下载,此处下载的是struts-2.3.20-all.zip。

二、新建web项目

打开Eclipse新建一个Dynamic Web Project,项目名为:struts2。

三、向Web项目中添加struts2框架

1、解压struts-2.3.20-all.zip,在lib文件加下找到以下jar文件:

commons-fileupload-1.3.1.jar

commons-io-2.2.jar

commons-lang3-3.2.jar

freemarker-2.3.19.jar

javassist-3.11.0.GA.jar

ognl-3.0.6.jar

struts2-core-2.3.20.jar

xwork-core-2.3.20.jar

2、把以上文件,复制粘贴到第二步新建的Web项目下的WebContent/WEB-INF/lib路径下。

3、修改WebContent/WEB-INF路径下的web文件:

<?xml version="1.0"encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

 <display-name>struts 2</display-name>

 <welcome-file-list>

   <welcome-file>index.html</welcome-file>

   <welcome-file>index.htm</welcome-file>

   <welcome-file>index.jsp</welcome-file>

   <welcome-file>default.html</welcome-file>

   <welcome-file>default.htm</welcome-file>

   <welcome-file>default.jsp</welcome-file>

 </welcome-file-list>

 

 <!-- 以下是添加struts2框架 -->

 <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>

</web-app>

四、建立struts2项目文件

1、在项目中的JavaResources/src路径下新建RegisterCheck.java跟RegisterAction.java文件(属于com.struts2包):

RegisterCheck.java代码:

package com.struts2

 

publicclassRegisterCheck

{

    publicboolean check(String psd,String repsd)

    {

        if (psd.equals(repsd))

        {

            returntrue

        }

        else

        {

            returnfalse

        }

    }

}

RegisterAction.java代码:

package com.struts2

 

publicclassRegisterAction

{

    private String usernaem

    private String psd

    private String repsd

    public String getUsernaem()

    {

        returnusernaem

    }

    publicvoid setUsernaem(Stringusernaem)

    {

        this.usernaem = usernaem

    }

    public String getPsd()

    {

        returnpsd

    }

    publicvoid setPsd(String psd)

    {

        this.psd = psd

    }

    public String getRepsd()

    {

        returnrepsd

    }

    publicvoid setRepsd(String repsd)

    {

        this.repsd = repsd

    }

    

    public String execute() throws Exception

    {

        RegisterCheckrc=newRegisterCheck()

        if (rc.check(getPsd(),getRepsd()))

        {

            return"success"

        }

        else

        {

            return"failure"

        }

    }

2、在项目中的JavaResources/src路径下新建一个struts.xml文件,并在此文件中对项目的Action进行配置:

struts.xml文件内容:

<?xml version="1.0"encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN"

    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

    <package name="struts2" extends="struts-default">

        <action name="register" class="com.struts2.RegisterAction">

            <result name="success">/success.jsp</result>

            <result name="failure">/failure.jsp</result>

        </action>

    </package>

</struts>

3、在项目下的WebContent目录下新建register.jsp、success.jsp和failure.jsp文件:

register.jsp代码:

<%@ page language="java"contentType="text/html charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 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>Insert title here</title>

</head>

<body>

<center>

    <form action="register" method="post">

        用户名:<input type="text" name="username"><br>

        密码:<input type="password" name="psd"><br>

        确认密码:<input type="password" name="repsd"><br>

        <input type="submit" value="提交">

        <input type="reset">

    </form>

</center>

</body>

</html>

success.jsp代码:

<%@ page language="java"contentType="text/html charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 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>Insert title here</title>

</head>

<body>

<center>

    <h1>注册成功</h1>

</center>

</body>

</html>

failure.jsp代码:

<%@ page language="java"contentType="text/html charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTDHTML 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>Insert title here</title>

</head>

<body>

<center>

    <h1>注册失败</h1>

</center>

</body>

</html>

五、运行Web项目

部署好web项目后,在浏览器输入“http://localhost:8080/struts2/register.jsp”,即可运行项目,输入数据测试是否配置好。

<constant name="struts.action.excludePattern" value="/websocket*,^ws://.$"/>

在struts.xml中配置上面的信息。注意:stackoverflow说的这种并不正确。

<!--constant name="struts.action.excludePattern" value="^ws://.+$" -->

前提:你的websocket的web程序路径最好不要在websocket下,建议back,,ws之类的,否则不明不白就会被struts拦截!!!

你的Endpoint应该like this:

如果没有Spring,把configurator这里删掉就OK。

@ServerEndpoint(value ="/websocket", configurator = SpringConfigurator.class)

public class ChatServer {

private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm") // 日期格式化

@OnOpen

public void open(Session session) {

// 添加初始化 *** 作

}

/**

* 接受客户端的消息,并把消息发送给所有连接的会话

* @param message 客户端发来的消息

* @param session 客户端的会话

*/

@OnMessage

public void getMessage(String message, Session session) {

//TODO

}

@OnClose

public void close() {

// 添加关闭会话时的 *** 作

}

@OnError

public void error(Throwable t) {

// 添加处理错误的 *** 作

System.out.println(t.getMessage())

System.out.println(t.getCause())

t.printStackTrace()

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11794009.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存