點贊再看,養成習慣
項目介紹
入黨信息管理系統採用jsp+servlet搭建,mysql做數據支持,jsp做前端數據渲染,實現不用角色不同的條件查詢,展示對應的頁面和數據。本系統應用於院校的入黨信息管理,目前實現了個人管理、系統管理、支部信息管理、入黨積極分子信息、預備黨員信息、正式黨員信息、黨費信息、公告管理、文件管理等功能,有時間在做進一步的完善。
項目適用人羣
正在做畢設的學生,或者需要項目實戰練習的Java學習者
開發環境:
- jdk 8
- intellij idea
- tomcat 8.5.40
- mysql 5.7
所用技術:
- jsp+servlet
- js+ajax
- layUi
- jdbc直連
項目訪問地址
http://localhost:8090
項目結構
項目截圖
-
註冊
- 系統管理
- 新增/修改用戶
-
正式黨員信息
-
公告管理
- 文件管理
關鍵代碼:
1.初始化工作
//數據庫連接初始化
public Connection getConnection() {
Connection conn = null;
String sDBDriver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/schooldb?useUnicode=true&characterEncoding=utf8";
try {
//加載數據庫驅動
Class.forName(sDBDriver);
//獲取數據庫鏈接 -賬號-密碼
conn = DriverManager.getConnection(url, "root", "root123");
return conn;
} catch (Exception e) {
e.printStackTrace();
System.err.println("數據庫驅動註冊錯誤信息: " + e.getMessage());
}
return conn;
}
2.黨費信息Servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
String mtype = request.getParameter("mtype");
String url = "";
DangfeiDao dangfeiDao = new DangfeiDao();
/**
* 添加黨費信息
*/
if ("add".equals(mtype)) {
TDangfei dangfei = new TDangfei();
dangfei.setTypeid(request.getParameter("typeid"));
dangfei.setClassname(request.getParameter("classname"));
dangfei.setDangfei(request.getParameter("dangfei"));
dangfei.setDangtype(request.getParameter("dangtype"));
dangfei.setShouyear(request.getParameter("shouyear"));
dangfei.setTypename(request.getParameter("typename"));
dangfei.setUsername(request.getParameter("username"));
dangfeiDao.addDangfei(dangfei);
url = "/DangfeiServlet?mtype=query&flag=success";
/**
* 初始化修改黨費信息界面
*/
} else if ("preupdate".equals(mtype)) {
request.setAttribute("dangfei", dangfeiDao.getDangfei(request.getParameter("id")));
url = "/files/dangfei/update.jsp";
/**
* 修改黨費信息
*/
} else if ("update".equals(mtype)) {
TDangfei dangfei = new TDangfei();
dangfei.setId(Integer.parseInt(request.getParameter("id")));
dangfei.setTypeid(request.getParameter("typeid"));
dangfei.setClassname(request.getParameter("classname"));
dangfei.setDangfei(request.getParameter("dangfei"));
dangfei.setDangtype(request.getParameter("dangtype"));
dangfei.setShouyear(request.getParameter("shouyear"));
dangfei.setTypename(request.getParameter("typename"));
dangfei.setUsername(request.getParameter("username"));
dangfeiDao.updateDangfei(dangfei);
url = "/DangfeiServlet?mtype=query";
/**
* 遍歷黨費信息
*/
} else if ("query".equals(mtype)) {
if (request.getSession().getAttribute("querypageunit") == null) {
request.getSession().setAttribute("querypageunit",
this.pageunit);
}
int curpage = this.getCurrentpage(request);
int pageunit = this.getPageunit(request, "querypageunit");
String urlpage = "DangfeiServlet?mtype=query";
StringBuffer cond = new StringBuffer();
if (null != request.getParameter("searchname") && "" != request.getParameter("searchname").trim()) {
cond.append(" and a.typename like '%" + request.getParameter("searchname").trim() + "%' ");
}
if (null != request.getSession().getAttribute("usertype") && !"0".equals(((String) request.getSession().getAttribute("usertype")))) {
cond.append(" and a.typeid like '%" + (String) request.getSession().getAttribute("typeid") + "%' ");
}
PageInfo pageInfo = dangfeiDao.queryTDangfei(curpage,
pageunit, request, urlpage, cond.toString());
request.setAttribute("pageinfo", pageInfo);
request.setAttribute("searchname", request.getParameter("searchname"));
url = "/files/dangfei/list.jsp";
/**
* 刪除黨費信息
*/
} else if ("delete".equals(mtype)) {
dangfeiDao.delDangfei(request.getParameter("id"));
url = "/DangfeiServlet?mtype=query";
}
//重定向到目標地址
RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
3.文件下載
public void doGet(HttpServletRequest request, HttpServletResponse response)throws IOException {
//獲得請求文件名
request.setCharacterEncoding("ISO-8859-1");
String filename = request.getParameter("filename");
filename = new String(filename.getBytes("ISO-8859-1"), "UTF-8");
//設置文件MIME類型
response.setContentType(getServletContext().getMimeType(filename));
//設置Content-Disposition
response.setHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes("GBK"), "ISO-8859-1"));
//讀取目標文件,通過response將目標文件寫到客戶端
//獲取目標文件的絕對路徑
String fullFileName = getServletContext().getRealPath("/upload/" + filename);
//讀取文件
InputStream in = new FileInputStream(fullFileName);
OutputStream out = response.getOutputStream();
//寫文件
int b;
while ((b = in.read()) != -1) {
out.write(b);
}
in.close();
out.close();
}
項目後續
其他ssh,ssm,springboot版本後續迭代更新,持續關注