您的当前位置:首页jsp实训报告总结

jsp实训报告总结

来源:小侦探旅游网
. . . .

企业信息管理系统概述

一、企业信息管理需求分析 1、登录页面模块

登录页面模块功能如下:

对登录页面进行设置,要求输入用户名和密码正确之后才可登录系统。

若尚未注册,则点击注册新用户(注:当用户名已存在时不能重复注册)。

2、首页面模块

首页面模块功能如下:

插入相应的图片,显示首页面的信息。

3、通讯工具模块

通讯工具模块功能如下:

1)、通讯录管理:修改联系人、删除联系人、新增联系人、

2)、短消息管理:发送消息、设置消息已读、删除消息、首页(前一页、后一页、尾页)的设置

4、个人管理模块

个人管理模块功能如下:

1)日程安排:修改日程安排、删除日程安排、新增日程安排、首页(前一页、后一页尾页)的设置

2)工作记录:修改工作记录、删除工作记录、新增工作记录、首页(前一页、后一页尾页)的设置

5、企业管理模块

企业管理模块功能如下:

1)公司公告:修改公司公告、删除公司公告、新增公司公告、首页(前一页、后一页尾页)的设置

2)工作会议::修改工作会议、删除工作会议、新增工作会议、首页(前一页、后一页尾页)的设置

6、退出模块

退出模块功能如下:

点击退出之后,系统直接跳转到登录页面,若要重新登录,则进入登录

页面输入信息之后即可登录。

二、企业信息管理系统功能结构图:

.下载可编辑.

. . . .

企业信息管理系统 登录页面首页面通讯工具个人管理企业管理退出 三、建立数据库

1、users(id,name,password,email)

列名 id name password email 数据类型 int nvarchar(50) nvarchar(50) nvarchar(50) 是否允许为空 否 是 是 是 2、address

列名 id username name sex mobile .下载可编辑.

通讯录管理短消息管理日程安排工作记录公司公告工作会议

数据类型 int varchar varchar varchar int 是否允许为空 否 否 否 否 是 . . . .

email qq company address postcode

varchar int varchar varchar int 是 是 否 否 否 3、sms

列名 id username sender message sendtime isread 数据类型 int varchar varchar varchar datetime varchar 是否允许为空 否 否 否 否 否 是 4、schedule

列名 id username year month day .下载可编辑.

数据类型 int varchar datetime datetime datetime 是否允许为空 否 否 否 否 否 . . . .

plans varchar 否 5、worklog

列名 id username year month day title description logtime 数据类型 int varchar datetime datetime datetime varchar varchar datetime 是否允许为空 否 否 否 否 否 否 是 是 6、notice

列名 id sender title [content] sendtime 数据类型 int varchar varchar varchar datetime 是否允许为空 否 否 否 否 否 7 、meeting

列名 id sendtime .下载可编辑.

数据类型 int datetime 是否允许为空 否 否 . . . .

endtime address title [content]

datetime varchar varchar varchar 否 否 否 否 静态页面设计

一、功能描述

1、登录页面模块:对登录页面进行设置,要求输入用户名和密码正确之后

才可登录系统。若尚未注册,则点击注册新用户,注册新用户时进入register.jsp页面。

2、注册模块:当用户名已存在时不能重复注册,当重复注册时,系统将会

给出提示“该用户名已经存在”。注册时,必须要输入密码。 3、首页面模块:插入相应的图片,显示首页面的信息。

4、通讯工具模块

1)、通讯录管理:修改联系人、删除联系人、新增联系人

2)、短消息管理:发送消息、设置消息已读、删除消息、首页(前一页、后一页、尾页)的设置

5、个人管理模块

1)日程安排:修改日程安排、删除日程安排、新增日程安排、首页(前一页、后一页尾页)的设置

2)工作记录:修改工作记录、删除工作记录、新增工作记录、首页(前一页、后一页尾页)的设置

6、企业管理模块

1)公司公告:修改公司公告、删除公司公告、新增公司公告、首页(前一页、后一页尾页)的设置

2)工作会议::修改工作会议、删除工作会议、新增工作会议、首页(前一页、后一页尾页)的设置

7、退出模块

点击退出之后,系统直接跳转到登录页面,若要重新登录,则进入登录

页面输入信息之后即可登录。

.下载可编辑.

. . . .

二、静态页面设计的截图 1. 登录页面——login.jsp

(1)插入一个表格(一行一列)设置表格的背景图片为指定图片; (2)插入一个表单,定义相应的按钮和输入框(用户名,密码,登录);

2、注册页面——register.jsp

(1)通过点击登录页面的“注册新用户”进入到注册页面;

(2)插入一个表单,定义相应的按钮和输入框(用户名,密码,确认密码,Email,提交注册按钮);

.下载可编辑.

. . . .

3、top.jsp

4、menu.jsp

(1)插入一个表格,设置表格的背景颜色为#EEEEEE (2)设置相应行的信息

5、foot.jsp

6、首页面——welcome.jsp

.下载可编辑.

. . . .

(1)整个页面分为几个模块:最上面的用top.jsp来实现,左边的菜单栏用menu.jsp来实现,下面的用foot.jsp来实现。

(2)欢迎的页面放在一个表格当中,对应的图片则通过放在行里来实现效果。

7、通讯录管理页面——address.jsp

(1)通过点击菜单栏上的“通讯录管理”来链接到通讯录管理的页面;

(2)整个的定义一个表格,将联系人的信息放在行和列,记录的页数则是在表单中插入表格来实现的。

(3)通过使用select实现下拉菜单;

.下载可编辑.

. . . .

8、新增联系人页面——address_add.jsp

(1)通过点击菜单栏上的“新增联系人”来链接到新增联系人的页面;

(2)插入一个表单,定义相应的按钮和输入框(姓名,性别,手机,Email,QQ号码,工作单位,地址,邮编,和提交按钮);

*以下页面类似

9、修改联系人页面——address_edit.jsp

.下载可编辑.

. . . .

登录模块

一、 新建一个包取名为dbo:

(1)、新建类DBOperation,用来和数据库创建连接 (2)、定义一个查询方法:public boolean query(String sql){} (3)、定义一个更新方法:public boolean update(String sql){} (4)、进行测试; 二、新建一个包取名为entity

(1)、新建一个实体类User.java;

(2)、定义相应的属性变量,产生get()和set()方法; 三、新建一个包取名为dao;新建一个类UserDAO.java; a、跟数据库创建连接:dbo.createConn()

b、准备SQL语句:

String

sql=\"select

*

from

users

where

username='\"+username+\"'and

password='\"+password+\"'\";

C、执行SQL语句:dbo.query(sql)

d、关闭连接:dbo.closeRs(); dbo.closeStat(); dbo.closeConn();

四、新建一个包取名为Servlet; (1)、新建一个类LoginServlet.java;

public class LoginServlet extends HttpServlet {}

(2)、添加doGet()和doPost()方法; (3)、创建会话:

HttpSession session=request.getSession();

.下载可编辑.

. . . .

session.setAttribute(\"username\", username);

五、在登录页面(login)中写脚本,设置用户名和密码不为空;

六、配置XML文件;

LoginServlet servlet.LoginServlet

.下载可编辑.

. . . .

LoginServlet /LoginServlet

注册模块

一、 menu中获取当前使用的用户名

<%=session.getAttribute(\"username\")%>(注:表达式没有分号)

二、退出模块:

1、退出是指把当会话结束,即将页面注销掉; 2、在servlet里创建一个类LogoutServlet.java;

产生doGet()方法,如果用户名不为空则注销会话session.invalidate();否则将页面重定向到登录界面response.sendRedirect(\"login.jsp\"); 3、更改XML中的配置文件;

LogoutServlet servlet.LogoutServlet

.下载可编辑.

. . . .

LogoutServlet /LogoutServlet

三、注册模块:

1、在dao里新建UserDAO,定义几个方法:

(1)、判断是否数据库中是否存在该用户:

public boolean isExist(String username) {}

a、跟数据库创建连接:

dbo.createConn()

b、准备SQL语句:

String sql = \"select * from users where username='\"+username+\"'\";

d、执行SQL语句:dbo.query(sql)

e、关闭连接:dbo.closeRs(); dbo.closeStat(); dbo.closeConn(); (2)、向数据库中添加用户: public boolean add(User user) {}

a、跟数据库创建连接:dbo.createConn() b

SQL

String

sql

=

\"insert

into

users(username,password,email)values('\"+user.getUsername()+\"','\"+user.getPassword()+\"','\"+user.getEmail()+\"')\";

c、执行SQL语句:dbo.query(sql)

d、关闭连接:dbo.closeStat(); dbo.closeConn();

2、采用Ajax对页面进行局部刷新(编写一个

.下载可编辑.

AjaxServlet);然后在登

. . . .

录页面(register.jsp)加脚本;

(1)、创建一个对象XMLHttpRequest;

(2)、发送请求函数,用open方法打开需要访问的URL;

(3)、指定要处理的东西,调用函数处理信息(function的作用:获取返回的信息);

(4)、更改XML中的配置文件;

AjaxServlet servlet.AjaxServlet

AjaxServlet /ajax.do

3、在servlet里新建RegisterServlet.java,doPost();

更改XML中的配置文件;

RegisterServlet servlet.RegisterServlet

.下载可编辑.

添加doGet()和. . . .

RegisterServlet /RegisterServlet

4、在register页面的form里添加action、method和onsubmit action=\"RegisterServlet\" method=\"post\" onsubmit=\"return validRegister(this);\" 5、修改login.jsp页面:

四、欢迎模块:

设置不能直接通过输入网址进入首页面;

<%

if(session.getAttribute(\"username\")==null){ response.sendRedirect(\"login.jsp\");

return; } %>

通讯录管理

一、定义一个实体类:Address.java; 定义相应的变量

(id,username,name,sex,mobile,email,qq,company,address,postcode),产生对应的get()和set()方法; 二、通讯录整个页面的显示;

1、在DAO中新建一个AdreessDAO.java类;

(1)、定义一个方法用来 从数据库中查找出该用户所对应的所

.下载可编辑.

. . . .

有联系人的信息;

public List

searchAll(String username) {} (2)、与数据库创建连接;dbo.createConn();

(3)、准备查询语句;

String sql = \"select * from address where username='\" + username+ \"'\";

(4)、用循环语句进行查询;

if (dbo.createConn()) {

String sql = \"select * from address where username='\" + username+ \"'\";

if (dbo.query(sql)) {

while (dbo.next()) {

address = new Address(); try {

address.setId(dbo.getRs().getInt(\"id\")); address.setUsername(username);

address.setSex(dbo.getRs().getString(\"sex\"));

address.setAddress(dbo.getRs().getString(\"address\"));

address.setQq(dbo.getRs().getString(\"qq\"));

address.setMobile(dbo.getRs().getString(\"mobile\"));

address.setName(dbo.getRs().getString(\"name\"));

address.setCompany(dbo.getRs().getString(\"company\"));

address.setEmail(dbo.getRs().getString(\"email\"));

.下载可编辑.

. . . .

address.setPostcode(dbo.getRs().getString(\"postcode\"));

} }

list.add(address);

} catch (SQLException e) { }

e.printStackTrace();

2、在sevlet中新建AddressServlet.java; (1)、定义doGet()和doPost()方法;

(2)、创建会话:HttpSession session=request.getSession(); (3)、如果用户名为空这页面转入登录界面(login.jsp);

if(username==null){

}

response.sendRedirect(\"login.jsp\"); return;

(4)、否则页面转入通讯录管理的界面;

(5)、当点击新增联系人时,页面跳转到新增联系人的页面

(address_add.jsp),执行添加的方法,然后将信息插入到数据库中;

else if(\"add\".equals(method)){

topage=\"address_add.jsp\";

}else if(\"insert\".equals(method)){

.下载可编辑.

.下载可编辑.

. . . .

String name=request.getParameter(\"name\"); String sex=request.getParameter(\"sex\"); String mobile=request.getParameter(\"mobile\"); String email=request.getParameter(\"email\"); String qq=request.getParameter(\"qq\");

String address=request.getParameter(\"address\"); String company=request.getParameter(\"company\"); String postcode=request.getParameter(\"postcode\"); Address addr=new Address(); addr.setUsername(username); addr.setName(name); addr.setSex(sex); addr.setEmail(email); addr.setMobile(mobile); addr.setQq(qq);

addr.setAddress(address); addr.setCompany(company); addr.setPostcode(postcode); dao.add(addr);

List

list=dao.searchAll(username); request.setAttribute(\"list\", list);

}

. . . .

(6)、删除操作;

else if(\"delete\".equals(method)){

}

int id=Integer.parseInt(request.getParameter(\"id\")); dao.delete(id);

List

list=dao.searchAll(username); request.setAttribute(\"list\", list);

(7)、修改操作;

else if(\"edit\".equals(method)){

int id=Integer.parseInt(request.getParameter(\"id\")); List

list=dao.search(id); request.setAttribute(\"list\", list); topage=\"address_edit.jsp\";

}else if(\"update\".equals(method)){

int id=Integer.parseInt(request.getParameter(\"id\")); String name=request.getParameter(\"name\"); String sex=request.getParameter(\"sex\"); String mobile=request.getParameter(\"mobile\"); String email=request.getParameter(\"email\"); String qq=request.getParameter(\"qq\");

String address=request.getParameter(\"address\");

.下载可编辑.

. . . .

}

String company=request.getParameter(\"company\"); String postcode=request.getParameter(\"postcode\"); Address addr=new Address(); addr.setId(id); addr.setName(name); addr.setSex(sex); addr.setEmail(email); addr.setMobile(mobile); addr.setQq(qq);

addr.setAddress(address); addr.setCompany(company); addr.setPostcode(postcode); dao.update(addr);

List

list=dao.searchAll(username); request.setAttribute(\"list\", list);

三、修改address.jsp页面中的内容; (1)、从数据库中获取对应联系人的信息;

<%

List

list=(List

)request.getAttribute(\"list\");

Iterator

it=list.iterator();

.下载可编辑.

. . . .

Address address=null; int i=1;

while(it.hasNext()){

address=it.next();

%>

bgcolor=\"eeeeee\" <%} %> >

<%=address.getName() %> <%=address.getSex() %> <%=address.getMobile() %> <%=address.getEmail() %> <%=address.getQq() %> <%=address.getCompany() %> <%=address.getAddress() %> <%=address.getPostcode() %>

<% i++;} %>

(2)、导入相应的包;

<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"GB18030\"%> <%@ page import=\"entity.*\"%> <%@ page import=\"dao.*\"%>

.下载可编辑.

. . . .

(3)、对页面的操作栏里的修改和删除进行设置;

\">修改 \">删除

五、部署XML文件;

AddressServlet servlet.AddressServlet

AddressServlet /add.do

六、测试运行;

实现分页设置

一、 定义一个实体类:Page.java; 定义相应的变量(pageSize,

pageNo,totalPages,firstPageNo,previousPageNo,nexPageNo,lastPageNo,totalRecords,list),产生对应的

get()和set()方法;

二、 在AddressDAO中添加相应的方法和属性; (1)、在AdderssDAO中增加一个变量page和其对应的set和get方法

private Page

page=new Page
();

public Page

getPage() {

return page;

.下载可编辑.

. . . .

}

public void setPage(Page

page) { }

this.page = page;

(2)、定义一个方法用于分页;

public List

pageData(String username,int pageSize,int pageNo){

ArrayList

list=new ArrayList
(); int totalRecords=0; page.setFirstPageNo(1); page.setPageSize(pageSize); page.setPageNo(pageNo);

DBOperation db = new DBOperation(); if(db.createConn()){

String sql=\"select count(*) as totalRecords from address where

username='\"+username+\"'\";

db.query(sql); if(db.next())

try {

totalRecords=db.getRs().getInt(\"totalRecords\");

} catch (SQLException e) { }

e.printStackTrace();

.下载可编辑.

. . . .

}

db.closeRs(); db.closeStat(); db.closeConn();

page.setTotalRecords(totalRecords); int

totalPages=totalRecords%pageSize==0?totalRecords/pageSize:totalRecords/pageSize+1;

page.setTotalPages(totalPages); page.setLastPageNo(totalPages);

page.setPreviousPageNo(pageNo<=1?1:pageNo-1);

page.setNextPageNo(pageNo>=totalPages?totalPages:pageNo+1); String sql1=\"select top \"+pageSize*pageNo +\" id from address where

username='\"+username+\"' order by id\";

String sql2=\"select top \"+pageSize*(pageNo-1) +\" id from address where

username='\"+username+\"' order by id\";

String sql3=\"select * from address where id not in(\"+sql2+\") and id in(\"+sql1+\")

order by id\";

Address address=null; if(db.createConn()){

db.query(sql3);

while(db.next()){

.下载可编辑.

. . . .

}

}

}

address=new Address(); try {

address.setId(db.getRs().getInt(\"id\"));

address.setUsername(db.getRs().getString(\"username\")); address.setSex(db.getRs().getString(\"sex\")); address.setName(db.getRs().getString(\"name\")); address.setMobile(db.getRs().getString(\"mobile\")); address.setEmail(db.getRs().getString(\"email\")); address.setQq(db.getRs().getString(\"qq\"));

address.setCompany(db.getRs().getString(\"company\")); address.setAddress(db.getRs().getString(\"address\")); address.setPostcode(db.getRs().getString(\"postcode\")); list.add(address);

} catch (SQLException e) { }

e.printStackTrace();

db.closeRs(); db.closeStat(); db.closeConn(); page.setList(list); return list;

.下载可编辑.

. . . .

}

三、 对AddressServlet进行修改,通过Servlet处理查询请求;

else{ AddressDAO dao=new AddressDAO();

String pageSize=request.getParameter(\"pageSize\"); if(pageSize==null||pageSize.equals(\"\")){ }

String pageNo=request.getParameter(\"pageNo\"); if(pageNo==null||pageNo.equals(\"\")){ }

request.setAttribute(\"pageSize\", pageSize); request.setAttribute(\"pageNo\", pageNo);

pageNo=\"1\"; pageSize=\"5\";

if(\"list\".equals(method)){

List

list=dao.pageData(username, Integer.parseInt(pageSize),

Integer.parseInt(pageNo));

}

Page

pagebean=dao.getPage(); request.setAttribute(\"list\", list);

request.setAttribute(\"pagebean\", pagebean);

四、 修改address.jsp页面;

(1)、实现首页、前一页、后一页、尾页的超链接操作;

.下载可编辑.

. . . .

href=\"javascript:document.all.pageNo.value='<%=pagebean.getFirstPageNo() %>';document.all.form1.submit();\">首页

href=\"javascript:document.all.pageNo.value='<%=pagebean.getPreviousPageNo() %>';document.all.form1.submit();\">前一页

href=\"javascript:document.all.pageNo.value='<%=pagebean.getNextPageNo()%>';document.all.form1.submit();\">后一页

href=\"javascript:document.all.pageNo.value='<%=pagebean.getLastPageNo() %>';document.all.form1.submit();\">尾页

(2)、分页的表单设计:

pagesize为:

显示总页数(totalrecords):

<%=pagebean.getTotalRecords() %>

pageNo为:

五、 测试运行;

感想:通过这两个星期的上机实训,对整个企业管理系统的设计有了一定的了解。对静态页面的设计更加的熟悉,能够使用简单的CSS对页面进行修饰,将Servlet, JSP等技术和Tomcat,My Eclipse,SQL server2005有机结合起来。对软件开发的工程思想和实际问题的解决有了更深的理解。软件开发技术之外的东西是需要花时间去巩固,去练习,直到渗透成一种习惯为止。

.下载可编辑.

. . . .

最后,通过本次实训使我学到很多东西,这样便于今后让我提早进入工作状态。

.下载可编辑.

因篇幅问题不能全部显示,请点此查看更多更全内容