基于struts2的个人信息管理系统(四)

通讯录管理功能的实现

查看联系人


增加联系人


查找联系人


修改联系人信息


lookFriends.jsp

<%@page import="JavaBean.MyFriBean"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib  prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><s:text name="个人信息管理系统->查看联系人"></s:text></title>
    </head>
    <body bgcolor="gray">
      <hr noshade/>
      <s:div align="center">
      <s:form action="findFriAction" method="post">
      <table border="0" cellspacing="0" cellpadding="0" width="100%" align="center">
          <tr>
              <td width="33%">
                  <s:a href="http://localhost:8080/ch13/friendManager/addFriend.jsp">增加联系人</s:a>
              </td>
              <td width="33%">
                  <s:text name="查看联系人"></s:text>
              </td>
              <td width="33%">
                  <s:text name="修删联系人:"></s:text>
                  <input type="text" name="friendname"/>
                  <input type="submit" value="查找"/>
              </td>
          </tr>
      </table>
      </s:form>
      </s:div>
      <hr noshade/>
      <table border="5" cellspacing="0" cellpadding="0" bgcolor="#95BDFF" width="60%" align="center">
          <tr>
              <th height="30">好友姓名</th>
              <th height="30">好友电话</th>
              <th height="30">邮箱地址</th>
              <th height="30">工作单位</th>
              <th height="30">家庭住址</th>
              <th height="30">QQ</th>
          </tr>
          <%
            ArrayList friends=(ArrayList)session.getAttribute("friends");
            if(friends==null||friends.size()==0){
            %>
            <s:div align="center"><%="您还没有添加联系人!"%></s:div>
            <%
            }else{
                for(int i=friends.size()-1;i>=0;i--){
                    MyFriBean ff=(MyFriBean)friends.get(i);
                    %> 
                   <tr>
                     <td><%=ff.getName()%></td>
                     <td><%=ff.getPhone()%></td>
                     <td><%=ff.getEmail()%></td>
                     <td><%=ff.getWorkplace()%></td>
                     <td><%=ff.getPlace()%></td>
                     <td><%=ff.getQQ()%></td>
                   </tr>
                    <%
                }
            }
          %>
        </table>
    </body>
</html>

lookFriends.jsp对应的业务控制器FindFriAction

package edu.friendManager.Action;

import DBJavaBean.DB;
import com.opensymphony.xwork2.ActionSupport;
import java.sql.ResultSet;
import javax.servlet.http.HttpServletRequest;
import javax.swing.JOptionPane;
import org.apache.struts2.interceptor.ServletRequestAware;

public class FindFriAction extends ActionSupport implements ServletRequestAware{
    private String friendname;
    private String userName;
    private ResultSet rs=null;
    private String message=ERROR;
    private HttpServletRequest request;
    public String getFriendname() {
        return friendname;
    }
    public void setFriendname(String friendname) {
        this.friendname = friendname;
    }
    public void setServletRequest(HttpServletRequest hsr) {
        request=hsr;
    }
    public void message(String msg){
        int type=JOptionPane.YES_NO_OPTION;
        String title="信息提示";
        JOptionPane.showMessageDialog(null,msg,title,type);
    }
    public void validate(){
        if(this.getFriendname().equals("")||this.getFriendname().length()==0){
            message("联系人姓名不允许为空!");
            addFieldError("friendname","联系人姓名不允许为空!");
        }else{
            try{
                DB mysql=new DB();
                userName=mysql.returnLogin(request);
                rs=mysql.selectFri(request, userName, this.getFriendname());
                if(!rs.next()){
                    message("联系人姓名不存在!");
                    addFieldError("friendname","联系人姓名不存在!");
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
   public String execute() throws Exception {
        DB mysql=new DB();
        userName=mysql.returnLogin(request);
        String fri=mysql.findFri(request, userName, this.getFriendname());
        if(fri.equals("ok")){
            message=SUCCESS;
        }
        return message;
    }
}

lookFriends.jsp使用到的JavaBean,MyFriBean

package JavaBean;

public class MyFriBean{
    private String name;
    private String phone;
    private String email;
    private String workplace;
    private String place;
    private String QQ;
    public MyFriBean(){
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getWorkplace() {
        return workplace;
    }
    public void setWorkplace(String workplace) {
        this.workplace = workplace;
    }
    public String getPlace() {
        return place;
    }
    public void setPlace(String place) {
        this.place = place;
    }
    public String getQQ() {
        return QQ;
    }
    public void setQQ(String QQ) {
        this.QQ = QQ;
    }
}

addFriend.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib  prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><s:text name="个人信息管理系统->增加联系人"></s:text></title>
    </head>
    <body bgcolor="gray">
        <hr noshade/>
      <s:div align="center">
      <s:form action="findFriAction" method="post">
      <table border="0" cellspacing="0" cellpadding="0" width="100%" align="center">
          <tr>
              <td width="33%">
                  <s:text name="增加联系人"></s:text>
              </td>
              <td width="33%">
                  <s:a href="http://localhost:8080/ch13/friendManager/lookFriends.jsp">查看联系人</s:a>
              </td>
              <td width="33%">
                  <s:text name="修删联系人:"></s:text>
                  <input type="text" name="friendname"/>
                  <input type="submit" value="查找"/>
              </td>
          </tr>
      </table>
      </s:form>
      </s:div>
      <hr noshade/>
      <form action="addFriAction" method="post">
          <table border="2" cellspacing="0" cellpadding="0" bgcolor="95BDFF" width="60%" align="center">
               <tr>
                     <td>
                         <s:textfield name="name" label="好友姓名"></s:textfield>
                     </td>
               </tr>
               <tr>
                     <td>
                         <s:textfield name="phone" label="好友电话"></s:textfield>
                     </td>
               </tr>
               <tr>
                     <td>
                         <s:textfield name="email" label="邮箱地址"></s:textfield>
                     </td>
               </tr>
               <tr>
                     <td>
                        <s:textfield name="workplace" label="工作单位"></s:textfield>
                     </td>
               </tr>
               <tr>
                     <td>
                         <s:textfield name="place" label="家庭住址"></s:textfield>
                     </td>
               </tr>
               <tr>
                     <td>
                         <s:textfield name="QQ" label="QQ"></s:textfield>
                     </td>
               </tr>
               <tr>
                 <td colspan="2" align="center">
                     <input type="submit" value="确 定" size="12">     
                     <input type="reset" value="清 除" size="12">
                 </td>
               </tr>
            </table>
        </form>
    </body>
</html>

所对应的action类AddFriAction

package edu.friendManager.Action;

import DBJavaBean.DB;
import com.opensymphony.xwork2.ActionSupport;
import java.sql.*;
import javax.servlet.http.HttpServletRequest;
//import javax.swing.JOptionPane;
import org.apache.struts2.interceptor.ServletRequestAware;

public class AddFriAction extends ActionSupport implements ServletRequestAware{
    private String name;
    private String phone;
    private String email;
    private String workplace;
    private String place;
    private String QQ;
    private ResultSet rs=null;
    private String message=ERROR;
    private HttpServletRequest request;
    private String userName=null;
        public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getWorkplace() {
        return workplace;
    }
    public void setWorkplace(String workplace) {
        this.workplace = workplace;
    }
    public String getPlace() {
        return place;
    }
    public void setPlace(String place) {
        this.place = place;
    }
    public String getQQ() {
        return QQ;
    }
    public void setQQ(String QQ) {
        this.QQ = QQ;
    }
    @Override
    public void setServletRequest(HttpServletRequest hsr) {
        request=hsr;
    }
//    public void message(String msg){
//        int type=JOptionPane.YES_NO_OPTION;
//        String title="信息提示";
//        JOptionPane.showMessageDialog(null,msg,title,type);
//    }
    @Override
    public void validate(){
        if(getName()==null||getName().length()==0){
            addFieldError("name","用户姓名不允许为空");
        }else{
            try {
                DB mysql=new DB();
                userName=mysql.returnLogin(request);
                rs=mysql.selectFri(request, userName, this.getName());
                if(rs.next()){
                    addFieldError("name","此用户已存在!");
                }
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
        if(getPhone()==null||getPhone().length()==0){
            addFieldError("phone","用户电话不允许为空");
        }
        if(getEmail()==null||getEmail().length()==0){
            addFieldError("email","邮箱地址不允许为空");
        }
        if(getWorkplace()==null||getWorkplace().length()==0){
            addFieldError("workplace","工作单位不允许为空");
        }
        if(getPlace()==null||getPlace().length()==0){
            addFieldError("place","家庭住址不允许为空");
        }
        if(getQQ()==null||getQQ().length()==0){
            addFieldError("QQ","用户QQ不允许为空");
        }
    }
   public String execute() throws Exception{
        DB mysql=new DB();
        userName=mysql.returnLogin(request);
        String fri=mysql.insertFri(request, userName, this.getName(), this.getPhone(), this.getEmail(), this.getWorkplace(), this.getPlace(), this.getQQ());
        if(fri.equals("ok")){
            message=SUCCESS;
        }else if(fri.equals("one")){
            message=INPUT;
        }
        return message;
    }
}

findFriend.jsp

<%@page import="JavaBean.MyFriBean"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib  prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><s:text name="个人信息管理系统->查找"></s:text></title>
    </head>
    <body bgcolor="gray">
      <hr noshade/>
      <s:div align="center">
      <s:form action="findFriAction" method="post">
      <table border="0" cellspacing="0" cellpadding="0" width="100%" align="center">
          <tr>
              <td width="33%">
                  <s:a href="http://localhost:8080/ch13/friendManager/addFriend.jsp">增加联系人</s:a>
              </td>
              <td width="33%">
                  <s:a href="http://localhost:8080/ch13/friendManager/lookFriends.jsp">查看联系人</s:a>
              </td>
              <td width="33%">
                  <s:text name="修删联系人:"></s:text>
                  <input type="text" name="friendname"/>
                  <input type="submit" value="查找"/>
              </td>
          </tr>
      </table>
      </s:form>
      </s:div>
      <hr noshade/>
      <table border="5" cellspacing="0" cellpadding="0" bgcolor="#95BDFF" width="60%" align="center">
          <tr>
              <th height="30">用户姓名</th>
              <th height="30">用户电话</th>
              <th height="30">邮箱地址</th>
              <th height="30">用户职称</th>
              <th height="30">家庭住址</th>
              <th height="30">用户QQ</th>
              <th height="30">用户操作</th>
          </tr>
          <%
            ArrayList friends=(ArrayList)session.getAttribute("findfriend");
            if(friends==null||friends.size()==0){
            %>
            <s:div align="center"><%="您还没有添加联系人!"%></s:div>
            <%
            }else{
                for(int i=friends.size()-1;i>=0;i--){
                    MyFriBean ff=(MyFriBean)friends.get(i);
                    %> 
                   <tr>
                     <td><%=ff.getName()%></td>
                     <td><%=ff.getPhone()%></td>
                     <td><%=ff.getEmail()%></td>
                     <td><%=ff.getWorkplace()%></td>
                     <td><%=ff.getPlace()%></td>
                     <td><%=ff.getQQ()%></td>
                     <td>
                         <s:a href="http://localhost:8080/ch13/friendManager/updateFriend.jsp">修改</s:a>
                         <s:a href="deleteFriAction">删除</s:a>
                     </td>
                   </tr>
                    <%
                }
            }
          %>
        </table>
    </body>
</html>

findFriend.jsp所使用的JavaBean在前面已经给出MyFriBean

updateFriend.jsp

<%@page import="JavaBean.MyFriBean"%>
<%@page import="java.util.ArrayList"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib  prefix="s" uri="/struts-tags" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><s:text name="个人信息管理系统->修改联系人"></s:text></title>
    </head>
    <body bgcolor="gray">
      <hr noshade/>
      <s:div align="center">
      <s:form action="findFriAction" method="post">
      <table border="0" cellspacing="0" cellpadding="0" width="100%" align="center">
          <tr>
              <td width="33%">
                  <s:a href="http://localhost:8080/ch13/friendManager/addFriend.jsp">增加联系人</s:a>
              </td>
              <td width="33%">
                  <s:a href="http://localhost:8080/ch13/friendManager/lookFriends.jsp">查看联系人</s:a>
              </td>
              <td width="33%">
                  <s:text name="修删联系人:"></s:text>
                  <input type="text" name="friendname"/>
                  <input type="submit" value="查找"/>
              </td>
          </tr>
      </table>
      </s:form>
      </s:div>
      <hr noshade/>
      <s:form action="upFriAction" method="post">
          <table border="2" cellspacing="0" cellpadding="0" bgcolor="95BDFF" width="60%" align="center">
              <%
            ArrayList delemess=(ArrayList)session.getAttribute("findfriend");
            if(delemess==null||delemess.size()==0){
            %>
            <s:div align="center"><%="您还没有添加联系人!"%></s:div>
            <%
            }else{
                for(int i=delemess.size()-1;i>=0;i--){
                    MyFriBean ff=(MyFriBean)delemess.get(i);
                    %> 
               <tr>
                     <td><s:text name="用户姓名"></s:text></td>
                     <td>
                         <input type="text" name="name" value="<%=ff.getName()%>"/>
                     </td>
               </tr>
               <tr>
                   <td><s:text name="用户电话"></s:text></td>
                     <td>
                         <input type="text" name="phone" value="<%=ff.getPhone()%>"/>
                     </td>
               </tr>
               <tr>
                   <td><s:text name="邮箱地址"></s:text></td>
                     <td>
                         <input type="text" name="email" value="<%=ff.getEmail()%>"/>
                     </td>
               </tr>
               <tr>
                   <td><s:text name="工作单位"></s:text></td>
                     <td>
                        <input type="text" name="workplace" value="<%=ff.getWorkplace()%>"/>
                     </td>
               </tr>
               <tr>
                   <td><s:text name="家庭住址"></s:text></td>
                     <td>
                         <input type="text" name="place" value="<%=ff.getPlace()%>"/>
                     </td>
               </tr>
               <tr>
                   <td><s:text name="用户QQ"></s:text></td>
                     <td>
                         <input type="text" name="QQ" value="<%=ff.getQQ()%>"/>
                     </td>
               </tr>
               <tr>
                 <td colspan="2" align="center">
                     <input type="submit" value="确 定" size="12">     
                     <input type="reset" value="清 除" size="12">
                 </td>
               </tr>
               <%
                }
            }
          %>
            </table>
        </s:form>
    </body>
</html>

对应的业务控制器UpdateFriAction

package edu.friendManager.Action;

import DBJavaBean.DB;
import com.opensymphony.xwork2.ActionSupport;
import java.sql.ResultSet;
import javax.servlet.http.HttpServletRequest;
import javax.swing.JOptionPane;
import org.apache.struts2.interceptor.ServletRequestAware;

public class UpdateFriAction extends ActionSupport implements ServletRequestAware{
    private String name;
    private String phone;
    private String email;
    private String workplace;
    private String place;
    private String QQ;
    private String message=ERROR;
    private HttpServletRequest request;
    private ResultSet rs=null;
    private String userName;
    private String friendname;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getWorkplace() {
        return workplace;
    }
    public void setWorkplace(String workplace) {
        this.workplace = workplace;
    }
    public String getPlace() {
        return place;
    }
    public void setPlace(String place) {
        this.place = place;
    }
    public String getQQ() {
        return QQ;
    }
    public void setQQ(String QQ) {
        this.QQ = QQ;
    }
    @Override
    public void setServletRequest(HttpServletRequest hsr) {
        request=hsr;
    }

    @Override
    public void validate(){
        if(getName()==null||getName().length()==0){
            addFieldError("name","用户姓名不允许为空");
        }
        if(getPhone()==null||getPhone().length()==0){
            addFieldError("phone","用户电话不允许为空");
        }
        if(getEmail()==null||getEmail().length()==0){
            addFieldError("email","邮箱地址不允许为空");
        }
        if(getWorkplace()==null||getWorkplace().length()==0){
            addFieldError("workplace","工作单位不允许为空");
        }
        if(getPlace()==null||getPlace().length()==0){
            addFieldError("place","家庭住址不允许为空");
        }
        if(getQQ()==null||getQQ().length()==0){
            addFieldError("QQ","用户QQ不允许为空");
        }
    }
    public String execute() throws Exception {
        DB mysql=new DB();
        userName=mysql.returnLogin(request);
        friendname=mysql.returnFri(request);
        String fri=mysql.updateFri(request, userName,friendname, this.getName(), this.getPhone(), this.getEmail(), this.getWorkplace(), this.getPlace(), this.getQQ());
        if(fri.equals("ok")){
            message=SUCCESS;
        }
        return message;
    } 
}

删除操作所对应的业务控制器DeleteFriAction

package edu.friendManager.Action;

import DBJavaBean.DB;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpServletRequest;
//import javax.swing.JOptionPane;
import org.apache.struts2.interceptor.ServletRequestAware;

public class DeleteFriAction extends ActionSupport implements ServletRequestAware{
    private String message=ERROR;
    private String userName;
    private String name;
    private HttpServletRequest request;
    public void setServletRequest(HttpServletRequest hsr) {
        request=hsr;
    }
    public String execute() throws Exception {
        DB mysql=new DB();
        userName=mysql.returnLogin(request);
        name=mysql.returnFri(request);
        String del=mysql.deleteFri(request, userName, name);
        if(del.equals("ok")){
            message=SUCCESS;
        }
        return message;
    }
//    public void message(String msg){
//        int type=JOptionPane.YES_NO_OPTION;
//        String title="信息提示";
//        JOptionPane.showMessageDialog(null,msg,title,type);
//    }

}
项目源码


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
一.功能简介 1. 实现一个图书管理系统。图书信息存放到一个数据库中。图书包含信息:图书号、图书名、作者、价格、备注字段。 2. 系统实现如下的基本管理功能: (1)用户分为两类:系统管理员,一般用户。 (2)提供用户注册和用户登录验证功能;其中登录用户的信息有:登录用户名,登录密码等。 (3)管理员可以实现对注册用户的管理(删除),并实现对图书的创建、查询、修改和删除等有关的操作。 (4)一般用户,只能查询图书,并进行借书、还书操作,每个用户最多借阅8本,即当目前借书已经是8本,则不能再借书了,只有还书后,才可以再借阅。 二.涉及技术 Struts2框架、MySQL数据库、C3P0数据池、Jsp、HTML、CSS、JavaScript等技术。 三.设计思路 1. 基于Struts2框架进行编程设计,连接MySQL数据库实现数据的增删查改,应用Jsp、HTML、CSS、JavaScript对访问页面进行编写和美化。 2. 分别创建book表和user表,用以存放图书信息和用户数据。其中user表中,设有flag以区分管理员和普通用户。 3. 分别创建Book类和User类,与数据表相对应。每本书和每个用户都有唯一的id与之对应。 4. 创建C3P0属性文件和数据库连接工具类。 5. 设计数据库操作类:UserDao类和BookDao类。UserDao用于实现所有对user表的操作,BookDao用于实现所有对book表的操作。 6. 创建分别对应UserDao类和BookDao类的Action:UserAction和BookAction。采用基于注解的方式进行Action配置。 7. 用户账号分为管理员账号和普通用户账号,注册时加以区分,登录时即可自动判断进入对应的操作主页面。 8. 管理员可实现对用户的查询显示,模糊查询,删除,批量删除,全选和取消全选等功能;可实现对图书的查询显示,模糊查询,添加,删除,批量删除,全选和取消全选等功能。 9. 普通用户可实现借书和还书功能,借书功能通过对book表的查询,将未借出的图书按照id顺序排列显示,点击表格后方的“借阅”按钮,进行确认借阅,将book表中本书的borrowperson列的值改为本用户账号。对于借阅成功的图书可以在“当前借阅”中进行查看。还书功能通过在“当前借阅”中点击“还书”按钮,进行确认还书,将book表中本书的borrowperson列的值改为“空”,本书信息将可以在“借书”界面查看。 .存在的问题 1. 原本希望能为每一个用户创建一个对应的以其账号命名的数据表,用以存放用户所借图书信息,但创建表的SQL语句无法在java代码中执行,所以只好在book表中添加一列borrowperson,用来存放借阅本书的用户账号,这样查询用户当前借阅记录时,以“where borrowperson=‘account’”为条件对book表进行查询即可。但是每个用户要当前查询借阅记录时都需要对整个book表进行遍历,效率太低。 2. 模糊查询时,因同时需要进行where筛选,SQL语句无法执行,只好分开查询,先进行模糊查询,查询结果存放到list表中,再通过遍历list表进行判断是否符合where的条件,若符合,则存入另一个list表中。这种方法虽然实现了查询,但效率太低,代码过于繁重。 五.改进预想 这些本不应该是预想,原本希望在本次作业中实现的,但时间不够充分,只能作为下一步的改建预想。 1. 希望实现登录时验证码验证登录; 2. 希望实现查询时,查询结果分页浏览; 3. 进一步优化Action之间的传值方法; 4. 页面进一步优化、美化; 5. 实现用户借书还书时间记录,和借阅时长限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值