Struts的BBS项目总结

     本项目主要是对Struts中的Result  Action struts.xml配置  OGNL表达式   值栈  开发流程  四层开发模式及每层模式功能的总结:

数据库的帮助类:可以通用

package com.bjsxt.bbs2009.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DB {
	public static Connection createConn() {
		Connection conn = null;
		try {
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/bbs2009", "root", "123");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	public static PreparedStatement prepare(Connection conn, String sql) {
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return ps;
	}
	
	public static void close(Connection conn) {
		
		try {
			conn.close();
			conn = null;
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public static void close(Statement stmt) {
		try {
			stmt.close();
			stmt = null;
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public static void close(ResultSet rs) {
		try {
			rs.close();
			rs = null;
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
}



Service层:实现的是业务逻辑功能

 package com.bjsxt.bbs2009.service;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.bjsxt.bbs2009.model.Category;
import com.bjsxt.bbs2009.util.DB;

public class CategoryService {
	public void add(Category c) {
		Connection conn = DB.createConn();
		String sql = "insert into _category values (null, ?, ?)";
		PreparedStatement ps = DB.prepare(conn, sql);
		try {
			ps.setString(1, c.getName());
			ps.setString(2, c.getDescription());
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
	}
	
	public List<Category> list() {
		Connection conn = DB.createConn();
		String sql = "select * from _category";
		PreparedStatement ps = DB.prepare(conn, sql);
		List<Category> categories = new ArrayList<Category>();
		try {
			ResultSet rs = ps.executeQuery();
			Category c = null;
			while(rs.next()) {
				c = new Category();
				c.setId(rs.getInt("id"));
				c.setName(rs.getString("name"));
				c.setDescription(rs.getString("description"));
				categories.add(c);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
		return categories;
	}
	
	public void delete(Category c) {
		deleteById(c.getId());
	}
	
	public void deleteById(int id) {
		Connection conn = DB.createConn();
		String sql = "delete from _category where id = ?";
		PreparedStatement ps = DB.prepare(conn, sql);
		try {
			ps.setInt(1, id);
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
	}
	
	public void update(Category c) {
		Connection conn = DB.createConn();
		String sql = "update _category set name = ?, description = ? where id = ?";
		PreparedStatement ps = DB.prepare(conn, sql);
		try {
			ps.setString(1, c.getName());
			ps.setString(2, c.getDescription());
			ps.setInt(3, c.getId());
			ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
	}
	
	public Category loadById(int id) {
		Connection conn = DB.createConn();
		String sql = "select * from _category where id = ?";
		PreparedStatement ps = DB.prepare(conn, sql);
		Category c = null;
		try {
			ps.setInt(1, id);
			ResultSet rs = ps.executeQuery();
		
			if(rs.next()) {
				c = new Category();
				c.setId(rs.getInt("id"));
				c.setName(rs.getString("name"));
				c.setDescription(rs.getString("description"));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		DB.close(ps);
		DB.close(conn);
		return c;
	}
}




实体类:Model层

package com.bjsxt.bbs2009.model;

public class Category {
	private int id;
	private String name;
	private String description;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
	
}



Action类:

package com.bjsxt.bbs2009.action;

import java.util.List;

import com.bjsxt.bbs2009.model.Category;
import com.bjsxt.bbs2009.service.CategoryService;
import com.opensymphony.xwork2.ActionSupport;

public class CategoryAction extends ActionSupport {
    private List<Category> categories;
    private CategoryService categoryService = new CategoryService();
    private Category category;
    private int id;
    
    public String list() {
        categories = categoryService.list();
        return SUCCESS;
    }
    
    
    
    public String add() {
        categoryService.add(category);
        return SUCCESS;
    }
    public String update() {
        categoryService.update(category);
        return SUCCESS;
    }
    public String delete() {
        categoryService.deleteById(id);
        return SUCCESS;
    }
    public String addInput() {
        
        return INPUT;
    }
    public String updateInput() {
        this.category = this.categoryService.loadById(id);
        return INPUT;
    }
    public List<Category> getCategories() {
        return categories;
    }
    public void setCategories(List<Category> categories) {
        this.categories = categories;
    }
    public CategoryService getCategoryService() {
        return categoryService;
    }
    public void setCategoryService(CategoryService categoryService) {
        this.categoryService = categoryService;
    }
    public Category getCategory() {
        return category;
    }
    public void setCategory(Category category) {
        this.category = category;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
}




struts.xml配置:

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

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
    "http://struts.apache.org/dtds/struts-2.1.dtd">

<struts>
	
	<!-- 
	
	<package name="bbs2009_default" extends="struts-default">
		 <global-exception-mappings>
    		<exception-mapping result="exception_handle" exception="Exception"></exception-mapping>
    	</global-exception-mappings>
	</package>
	-->
    <package name="admin" namespace="/admin" extends="struts-default" >
   		
   		
   		
   		<action name="index">
   			<result>/admin/index.html</result>
   		</action>
   		
       <action name="*-*" class="com.bjsxt.bbs2009.action.{1}Action" method="{2}">
       		<result>/admin/{1}-{2}.jsp</result>
       		<result name="input">/admin/{1}-{2}.jsp</result>
       </action>
       <!-- 
       <action name="category" class="com.bjsxt.bbs2009.action.CategoryAction">
       		<result>/admin/category_list.jsp</result>
       		<result name="add_input">/admin/category_add_input.jsp</result>
       		<result name="update_input">/admin/category_update_input.jsp</result>
       		
       </action>
        -->
    </package>
    
    
    <package name="front" namespace="/" extends="struts-default" >
    	 <!-- <default-action-ref name="index"/>  --> <!-- bug!!! -->
    
       <action name="index" class="com.bjsxt.bbs2009.action.CategoryAction" method="list">
       		<result>/index.jsp</result>
       </action>
       
      
    </package>
    
     
</struts>


运行截图:前台为BBS系统首页

Struts的BBS项目总结_第1张图片


后台为EXT做的,实现增删改查


Struts的BBS项目总结_第2张图片


源代码下载地址:http://download.csdn.net/detail/itjavawfc/7558747

你可能感兴趣的:(Struts项目,BBS系统)