1.项目思路:明确需求,确定模块,设计数据库,一共需要三张表:用户表,朋友表,留言表。然后MyEclipse搭建好框架,配置好框架化的数据库连接和实体文件的映射,接下来就可以着手做业务逻辑Biz类,控制类和JSP页面的设计,因时间有限,这里主要做功能端的实现,而前端页面就简单地设计,不那么精致地排版编写了,后期有时间再美化。
2.实现的功能界面一栏(部分页面)
上图:用户登录
上图: 用户注册
上图:主页
上图:添加已注册的用户为好友
上图:查看个人留言板
上图:个人好友列表
上图:给用户留言
上图:查看用户详细信息
3.因代码量庞大,这里只列出部分实例的实现(以用户注册为例)
前端页面:register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>用户注册-聚友网</title>
</head>
<body>
<h2 align="center">用户注册</h2>
<s:form action="regaction">
<s:textfield name="nameuser" label="用户名"></s:textfield>
<s:password name="passworduser" label="密码"></s:password>
<s:textfield name="ageuser" label="年龄"></s:textfield>
<s:textfield name="setuser" label="性别"></s:textfield>
<s:textfield name="emailuser" label="邮箱"></s:textfield>
<s:submit value="注册"></s:submit>
</s:form>
<hr color="#FAFAFA"/>
<a href="login.jsp">已有账户登录</a>
</body>
</html>
实体类及实体映射文件(搭框架自动生成,与数据库表相对应)
User.java
package dao;
/**
* User entity. @author MyEclipse Persistence Tools
*/
public class User implements java.io.Serializable {
// Fields
private Integer iduser;
private String nameuser;
private Integer ageuser;
private String setuser;
private String emailuser;
private String passworduser;
// Constructors
/** default constructor */
public User() {
}
/** minimal constructor */
public User(String nameuser, String passworduser) {
this.nameuser = nameuser;
this.passworduser = passworduser;
}
/** full constructor */
public User(String nameuser, Integer ageuser, String setuser, String emailuser, String passworduser) {
this.nameuser = nameuser;
this.ageuser = ageuser;
this.setuser = setuser;
this.emailuser = emailuser;
this.passworduser = passworduser;
}
// Property accessors
public Integer getIduser() {
return this.iduser;
}
public void setIduser(Integer iduser) {
this.iduser = iduser;
}
public String getNameuser() {
return this.nameuser;
}
public void setNameuser(String nameuser) {
this.nameuser = nameuser;
}
public Integer getAgeuser() {
return this.ageuser;
}
public void setAgeuser(Integer ageuser) {
this.ageuser = ageuser;
}
public String getSetuser() {
return this.setuser;
}
public void setSetuser(String setuser) {
this.setuser = setuser;
}
public String getEmailuser() {
return this.emailuser;
}
public void setEmailuser(String emailuser) {
this.emailuser = emailuser;
}
public String getPassworduser() {
return this.passworduser;
}
public void setPassworduser(String passworduser) {
this.passworduser = passworduser;
}
}
User.hbm.xml
<?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="dao.User" table="user" catalog="friend">
<id name="iduser" type="java.lang.Integer">
<column name="iduser" />
<generator class="identity" />
</id>
<property name="nameuser" type="java.lang.String">
<column name="nameuser" length="45" not-null="true" unique="true" />
</property>
<property name="ageuser" type="java.lang.Integer">
<column name="ageuser" />
</property>
<property name="setuser" type="java.lang.String">
<column name="setuser" length="4" />
</property>
<property name="emailuser" type="java.lang.String">
<column name="emailuser" length="45" />
</property>
<property name="passworduser" type="java.lang.String">
<column name="passworduser" length="45" not-null="true" />
</property>
</class>
</hibernate-mapping>
业务逻辑类
RegBiz.java
package biz;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import dao.User;
/*
* 注册逻辑
*/
public class RegBiz {
Configuration configuration = null;
SessionFactory sessionFactory = null;
Session session = null;
Transaction transaction = null;
public RegBiz(User user){
// TODO Auto-generated constructor stub
configuration = new Configuration().configure();
sessionFactory = configuration.buildSessionFactory();
session = sessionFactory.openSession();
transaction = session.beginTransaction();
session.save(user);
transaction.commit();
session.close();
}
}
控制类(调用业务逻辑,实现功能,在register.jsp页面上反馈)
RegAction.java
package action;
import biz.RegBiz;
import com.opensymphony.xwork2.ActionSupport;
import dao.User;
public class RegAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private Integer iduser;
private String nameuser;
private Integer ageuser;
private String setuser;
private String emailuser;
private String passworduser;
public Integer getIduser() {
return iduser;
}
public void setIduser(Integer iduser) {
this.iduser = iduser;
}
public String getNameuser() {
return nameuser;
}
public void setNameuser(String nameuser) {
this.nameuser = nameuser;
}
public Integer getAgeuser() {
return ageuser;
}
public void setAgeuser(Integer ageuser) {
this.ageuser = ageuser;
}
public String getSetuser() {
return setuser;
}
public void setSetuser(String setuser) {
this.setuser = setuser;
}
public String getEmailuser() {
return emailuser;
}
public void setEmailuser(String emailuser) {
this.emailuser = emailuser;
}
public String getPassworduser() {
return passworduser;
}
public void setPassworduser(String passworduser) {
this.passworduser = passworduser;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
User user = new User();
user.setNameuser(this.getNameuser());
user.setPassworduser(this.getPassworduser());
user.setAgeuser(this.getAgeuser());
user.setSetuser(this.getSetuser());
user.setEmailuser(this.getEmailuser());
new RegBiz(user);
return SUCCESS;
}
}