吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8845|回复: 21
收起左侧

[其他转载] 〖技术分享〗基于JavaEE架构SSH框架的web项目实现

  [复制链接]
伟殿天下 发表于 2017-7-30 17:35
本帖最后由 伟殿天下 于 2017-7-31 08:10 编辑

如题: 制作一个基于SSHweb项目,要求实现用户注册、用户登录和用户发表帖子和回复帖子的功能。
具体要求如下:
1.实现用户的注册,注册信息包括用户名、密码、生日、手机号、年龄、电子邮箱,并对输入的注册信息进行检验。
2.实现用户的登录,并对用户名和密码进行检验。
3.实现帖子的发表,除对标题和内容的检验外,还要求对帖子内容进行拦截过滤。
4.实现帖子的回复,要求对回复内容进行检验和拦截。
5.实现的查看所有帖子列表和查看帖子内容功能。
下面细述该项目的具体实现过程:

平台:基于window操作系统、myeclipse、MySQL 5.5、DW6、Goolge浏览器
新建一个action包,包内新建一个LoginAction.java类

[Java] 纯文本查看 复制代码
package com.SSH.action;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.SSH.dao.impl.UserDAO;
import com.SSH.vo.User;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
        //private String username;
        //private String password;
        private User user;                        //建立一个User类的对象
        
        public String execute()                        //处理用户请求的默认方法
        {
                //本来这里要创建Hibernate一些类的对象,比如Session对象、UserDAO对象
                //但有了Spring后,这些对象的创建都放在applicationContext.xml文件中配置
                //然后读取配置文件,从Spring容器中直接取出对象
                
                //读取配置文件,根据该文件创建对象
                ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
                UserDAO userDAO=(UserDAO)context.getBean("userDAO");        //取出名为userDAO的对象
                User u2 = userDAO.validateUser(this.user.getUsername(), this.user.getPassword());        //判断登录
                if(u2!=null)
                        return "success";
                else
                        return "error";
        }

        public User getUser() {
                return user;
        }

        public void setUser(User user) {
                this.user = user;
        }
}



新建DLAction.java类
[Java] 纯文本查看 复制代码
package com.SSH.action;

import com.opensymphony.xwork2.ActionSupport;

public class DLAction extends ActionSupport {
        public String execute()
        {
                return "error";
        }
}

新建dao包,包内新建impl类包,新建UserDAO.java类
[Java] 纯文本查看 复制代码
package com.SSH.dao.impl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.SSH.dao.BaseDAO;
import com.SSH.dao.IUserDAO;
import com.SSH.vo.User;

public class UserDAO extends BaseDAO implements IUserDAO {
        //登录判断 
        @Override
        public User validateUser(String username, String password) {
                User user = null;
                //String hql = "from User as u where u.username=" + username + " and u.password=" + password;        //HQL语句
                String hql = "from User as u where u.username=? and u.password=?";        //HQL语句
                Session session = this.getSession();        //调用继承的方法,获取Session对象
                Query query = session.createQuery(hql);        //Query接口对象,它能够执行复杂的HQL语句
                query.setString(0, username);                        //给第0个?处赋值
                query.setString(1, password);
                List<User> list = query.list();                        //执行查询,返回List集合对象
                if(list.size()>0)                                                //查询出来有结果
                {
                        user = list.get(0);                                        //取出第0个元素,是个User
                }
                session.close();
                return user;
        }

        @Override
        public void addUser(User user) {
                // TODO Auto-generated method stub
                Session session = this.getSession();                                //调用继承方法,获取Session对象
                Transaction tr = session.beginTransaction();                //开户事务
                session.save(user);                                                                        //保存,即添加数据 
                tr.commit();                                                                                //提交事务
                session.close();
        }

        @Override
        public void delUser(User user) {
                // TODO Auto-generated method stub

        }

        @Override
        public void delUser(int id) {
                // TODO Auto-generated method stub

        }

}

新建BaseDAO.java类
[Java] 纯文本查看 复制代码
//该类提供数据访问的SessionFactory对象、Session对象
//任何一个要对数据进行操作的类,都必须继承BaseDAO
package com.SSH.dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;

public class BaseDAO {
        //一般sessionFactory对象都是基于数据库连接配置而创建的
        //但这里的这个成员变量没有指明是基于哪个数据库连接的
        private SessionFactory sessionFactory;

        //提供返回Session对象的方法
        public Session getSession()
        {
                return this.sessionFactory.openSession();
        }
        
        public SessionFactory getSessionFactory() {
                return sessionFactory;
        }

        public void setSessionFactory(SessionFactory sessionFactory) {
                this.sessionFactory = sessionFactory;
        }
        
}

新建IUserDAO.java类
[Java] 纯文本查看 复制代码
//将操作User类的所有方法,都列出来
package com.SSH.dao;

import com.SSH.vo.User;

public interface IUserDAO {
        //判断登录,带入用户名和密码,返回User对象
        public User validateUser(String username, String password);
        
        //添加用户,带入User对象
        public void addUser(User user);

        //删除用户,带入User对象
        public void delUser(User user);
        
        //删除用户,带入用户编号
        public void delUser(int id);

}

新建vo包,包内新建User.java类
[Java] 纯文本查看 复制代码
package com.SSH.vo;

/**
 * User entity. [url=home.php?mod=space&uid=686208]@AuThor[/url] MyEclipse Persistence Tools
 */
public class User extends AbstractUser implements java.io.Serializable {

        // Constructors

        /** default constructor */
        public User() {
        }

        /** full constructor */
        public User(String username, String password) {
                super(username, password);
        }

}

新建User.hbm.xml并配置
[Java] 纯文本查看 复制代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    <class name="com.SSH.vo.User" table="user" catalog="test1">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="native" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" length="10" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="10" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

新建AbstractUser.java类
[Java] 纯文本查看 复制代码
package com.SSH.vo;

/**
 * AbstractUser entity provides the base persistence definition of the User
 * entity. @author MyEclipse Persistence Tools
 */

public abstract class AbstractUser implements java.io.Serializable {

        // Fields

        private Integer id;
        private String username;
        private String password;

        // Constructors

        /** default constructor */
        public AbstractUser() {
        }

        /** full constructor */
        public AbstractUser(String username, String password) {
                this.username = username;
                this.password = password;
        }

        // Property accessors

        public Integer getId() {
                return this.id;
        }

        public void setId(Integer id) {
                this.id = id;
        }

        public String getUsername() {
                return this.username;
        }

        public void setUsername(String username) {
                this.username = username;
        }

        public String getPassword() {
                return this.password;
        }

        public void setPassword(String password) {
                this.password = password;
        }

}

新建applicationContext.xml并配置
[Java] 纯文本查看 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

        <!-- 创建一个名为dataSource的对象,并给成员变量dirverClassName、url、username赋值 -->
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
                <property name="driverClassName"
                        value="com.mysql.jdbc.Driver">
                </property>
                <property name="url"
                        value="jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=UTF-8">
                </property>
                <property name="username" value="root"></property>
        </bean>
        
        <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                <property name="dataSource">        <!-- sessionFactory对象有个成员变量叫dataSource -->
                        <ref bean="dataSource" />        <!-- 将上面创建的dataSource对象,赋值给成员变量dataSource -->
                </property>
                <property name="hibernateProperties">
                        <props>
                                <prop key="hibernate.dialect">
                                        org.hibernate.dialect.MySQLDialect
                                </prop>
                        </props>
                </property>
                <property name="mappingResources">
                        <list>        <!-- 有多少张数据表被映射成类,这里就会有多少对value标签 -->
                                <value>com/SSH/vo/User.hbm.xml</value>
                        </list>
                </property>
        </bean>
        
        <!-- 创建一个BaseDAO对象,并将上面的sessionFactory对象,赋值给BaseDAO对象的sessionFactory成员 -->
        <bean id="baseDAO" class="com.SSH.dao.BaseDAO">
                <property name="sessionFactory" ref="sessionFactory"/>
        </bean>
        
        <!-- 创建一个UserDAO的对象,它把上面的BaseDAO对象的所有成员都继承过来 -->
        <bean id="userDAO" class="com.SSH.dao.impl.UserDAO" parent="baseDAO"/>
        
        <!-- 创建一个LoginAction的对象la, struts.xml中的la对象就是从这里获取的 -->
        <bean id="la" class="com.SSH.action.LoginAction"/>
        
</beans>

新建struts.xml并配置
[Java] 纯文本查看 复制代码
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
        <!-- 将struts中的Action对象,交给spring容器来管理 -->
        <constant name="struts.objectFacotry" value="spring" />

        <package name="struts" extends="struts-default">
        
                <action name="login" class="la">
                        <result name="success">/welcome.jsp</result>
                        <result name="error">/error.jsp</result>
                        <result name="index">/index.jsp</result>
                </action>



网页JSP实现效果,详细代码不细述,见附件。

网页JSP实现效果

网页JSP实现效果



网页实现效果及数据库的构建就不细说了,亲们可以上手试试,由于此文是本人原创,涉及到相关学术问题,仅供大家学习交流,勿用作商业用途!!源码附件:   源码附件.txt (56 Bytes, 下载次数: 164)



如果觉得不错,给个好评呗,有不懂的地方也欢迎大家多多交流!!

免费评分

参与人数 5吾爱币 +5 热心值 +5 收起 理由
疯萧萧 + 1 + 1 我很赞同!
CityHuntShou + 1 + 1 谢谢@Thanks!
小小耳机 + 1 + 1 链接已经失效 请LZ补下
hootik + 1 + 1 用心讨论,共获提升!
99910369 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 伟殿天下 发表于 2018-3-8 17:50
cszdn 发表于 2018-3-8 17:31
点击源码附件直接扣我币了,链接还过期了

这篇文章发表时间比较久,由于云盘放不下一部分资料误删了,所以链接失效,不好意思,代码原文已贴出,可复制进去编译运行OK
 楼主| 伟殿天下 发表于 2017-8-1 11:48
99910369 发表于 2017-8-1 12:05
派对炸弹 发表于 2017-8-17 23:04
正好需要这个,最近正在学ssh,多谢分享
zz1995 发表于 2017-8-22 21:19
过期了啊,我的币
rxxcy 发表于 2017-8-23 13:38
很想自己弄一个ssh 又不会python又不会java的
丶硪很嚣张灬 发表于 2017-8-23 15:19
链接过期了
vale 发表于 2017-8-29 14:57
百度云链接挂了,希望能再发一下
氓之嗤嗤 发表于 2017-9-1 18:22
不错有可借鉴
幕XX 发表于 2017-9-5 11:48
链接挂了......
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 21:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表