当前位置:文档之家› jsp实训报告总结

jsp实训报告总结

企业信息管理系统概述一、企业信息管理需求分析1、登录页面模块登录页面模块功能如下:对登录页面进行设置,要求输入用户名和密码正确之后才可登录系统。

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

2、首页面模块首页面模块功能如下:插入相应的图片,显示首页面的信息。

3、通讯工具模块通讯工具模块功能如下:1)、通讯录管理:修改联系人、删除联系人、新增联系人、2)、短消息管理:发送消息、设置消息已读、删除消息、首页(前一页、后一页、尾页)的设置4、个人管理模块个人管理模块功能如下:1)日程安排:修改日程安排、删除日程安排、新增日程安排、首页(前一页、后一页尾页)的设置2)工作记录:修改工作记录、删除工作记录、新增工作记录、首页(前一页、后一页尾页)的设置5、企业管理模块企业管理模块功能如下:1)公司公告:修改公司公告、删除公司公告、新增公司公告、首页(前一页、后一页尾页)的设置2)工作会议::修改工作会议、删除工作会议、新增工作会议、首页(前一页、后一页尾页)的设置6、退出模块退出模块功能如下:点击退出之后,系统直接跳转到登录页面,若要重新登录,则进入登录页面输入信息之后即可登录。

二、企业信息管理系统功能结构图:三、建立数据库1、users(id,name,password,email)2、address3、sms4、schedule5、worklog6、notice7 、meeting静态页面设计一、功能描述1、登录页面模块:对登录页面进行设置,要求输入用户名和密码正确之后才可登录系统。

若尚未注册,则点击注册新用户,注册新用户时进入页面。

2、注册模块:当用户名已存在时不能重复注册,当重复注册时,系统将会给出提示“该用户名已经存在”。

注册时,必须要输入密码。

3、首页面模块:插入相应的图片,显示首页面的信息。

4、通讯工具模块1)、通讯录管理:修改联系人、删除联系人、新增联系人2)、短消息管理:发送消息、设置消息已读、删除消息、首页(前一页、后一页、尾页)的设置5、个人管理模块1)日程安排:修改日程安排、删除日程安排、新增日程安排、首页(前一页、后一页尾页)的设置2)工作记录:修改工作记录、删除工作记录、新增工作记录、首页(前一页、后一页尾页)的设置6、企业管理模块1)公司公告:修改公司公告、删除公司公告、新增公司公告、首页(前一页、后一页尾页)的设置2)工作会议::修改工作会议、删除工作会议、新增工作会议、首页(前一页、后一页尾页)的设置7、退出模块点击退出之后,系统直接跳转到登录页面,若要重新登录,则进入登录页面输入信息之后即可登录。

二、静态页面设计的截图1.登录页面——(1)插入一个表格(一行一列)设置表格的背景图片为指定图片;(2)插入一个表单,定义相应的按钮和输入框(用户名,密码,登录);2、注册页面——(1)通过点击登录页面的“注册新用户”进入到注册页面;(2)插入一个表单,定义相应的按钮和输入框(用户名,密码,确认密码,Email,提交注册按钮);3、4、(1)插入一个表格,设置表格的背景颜色为#EEEEEE(2)设置相应行的信息5、6、首页面——(1)整个页面分为几个模块:最上面的用来实现,左边的菜单栏用来实现,下面的用来实现。

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

7、通讯录管理页面——(1)通过点击菜单栏上的“通讯录管理”来链接到通讯录管理的页面;(2)整个的定义一个表格,将联系人的信息放在行和列,记录的页数则是在表单中插入表格来实现的。

(3)通过使用select实现下拉菜单;8、新增联系人页面——(1)通过点击菜单栏上的“新增联系人”来链接到新增联系人的页面;(2)插入一个表单,定义相应的按钮和输入框(姓名,性别,手机,Email,QQ号码,工作单位,地址,邮编,和提交按钮);*以下页面类似9、修改联系人页面——登录模块一、新建一个包取名为dbo:(1)、新建类DBOperation,用来和数据库创建连接(2)、定义一个查询方法:public boolean query(String sql){}(3)、定义一个更新方法:public boolean update(String sql){}(4)、进行测试;二、新建一个包取名为entity(1)、新建一个实体类;(2)、定义相应的属性变量,产生get()和set()方法;三、新建一个包取名为dao;新建一个类;a、跟数据库创建连接:()b、准备SQL语句:String sql="select * from users where username='"+username+"'and password='"+password+"'";C、执行SQL语句:(sql)d、关闭连接:(); (); ();四、新建一个包取名为Servlet;(1)、新建一个类;public class LoginServlet extends HttpServlet {}(2)、添加doGet()和doPost()方法;(3)、创建会话:HttpSession session=();("username", username);五、在登录页面(login)中写脚本,设置用户名和密码不为空;<script language="javascript">function valid() {var username = var password = if (username == "") {alert("用户名不能为空!");return false;}if (password == "") {alert("密码不能为空!");return false;}return true;}</script>六、配置XML文件;<servlet><servlet-name>LoginServlet</servlet-name><servlet-class></servlet-class></servlet><servlet-mapping><servlet-name>LoginServlet</servlet-name><url-pattern>/LoginServlet</url-pattern></servlet-mapping>注册模块一、menu中获取当前使用的用户名<%=("username")%>(注:表达式没有分号)二、退出模块:1、退出是指把当会话结束,即将页面注销掉;2、在servlet里创建一个类;产生doGet()方法,如果用户名不为空则注销会话();否则将页面重定向到登录界面("");3、更改XML中的配置文件;<servlet><servlet-name>LogoutServlet</servlet-name><servlet-class></servlet-class></servlet><servlet-mapping><servlet-name>LogoutServlet</servlet-name><url-pattern>/LogoutServlet</url-pattern></servlet-mapping>三、注册模块:1、在dao里新建UserDAO,定义几个方法:(1)、判断是否数据库中是否存在该用户:public boolean isExist(String username) {}a、跟数据库创建连接:()b、准备SQL语句:String sql = "select * from users where username='"+username+"'";d、执行SQL语句:(sql)e、关闭连接:(); (); ();(2)、向数据库中添加用户:public boolean add(User user) {}a、跟数据库创建连接:()b、准备SQL语句String sql = "insert into users(username,password,email)values('"+()+"','"+()+"','"+()+"')";c、执行SQL语句:(sql)d、关闭连接:(); ();2、采用Ajax对页面进行局部刷新(编写一个AjaxServlet);然后在登录页面()加脚本;(1)、创建一个对象XMLHttpRequest;(2)、发送请求函数,用open方法打开需要访问的URL;(3)、指定要处理的东西,调用函数处理信息(function的作用:获取返回的信息);(4)、更改XML中的配置文件;<servlet><servlet-name>AjaxServlet</servlet-name><servlet-class></servlet-class></servlet><servlet-mapping><servlet-name>AjaxServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>3、在servlet里新建,添加doGet()和doPost();更改XML中的配置文件;<servlet><servlet-name>RegisterServlet</servlet-name><servlet-class></servlet-class></servlet><servlet-mapping><servlet-name>RegisterServlet</servlet-name><url-pattern>/RegisterServlet</url-pattern></servlet-mapping>4、在register页面的form里添加action、method和onsubmitaction="RegisterServlet" method="post" onsubmit="return validRegister(this);"5、修改页面:<jsp:useBean id="user"class=""scope="request"/>四、欢迎模块:设置不能直接通过输入网址进入首页面;<%if("username")==null){("");return; } %>通讯录管理一、定义一个实体类:; 定义相应的变量(id,username,name,sex,mobile,email,qq,company,address,postcode),产生对应的get()和set()方法;二、通讯录整个页面的显示;1、在DAO中新建一个类;(1)、定义一个方法用来从数据库中查找出该用户所对应的所有联系人的信息;public List<Address> searchAll(String username) {}(2)、与数据库创建连接;();(3)、准备查询语句;String sql = "select * from address where username='" + username+ "'";(4)、用循环语句进行查询;if ()) {String sql = "select * from address where username='" + username+ "'";if (sql)) {while ()) {address = new Address();try {().getInt("id"));(username);().getString("sex"));().getString("address"));().getString("qq"));().getString("mobile"));().getString("name"));().getString("company"));().getString("email"));().getString("postcode"));(address);} catch (SQLException e) {();}}}2、在sevlet中新建;(1)、定义doGet()和doPost()方法;(2)、创建会话:HttpSession session=();(3)、如果用户名为空这页面转入登录界面();if(username==null){("");return;}(4)、否则页面转入通讯录管理的界面;(5)、当点击新增联系人时,页面跳转到新增联系人的页面(),执行添加的方法,然后将信息插入到数据库中;else if("add".equals(method)){topage="";}else if("insert".equals(method)){String name=("name");String sex=("sex");String mobile=("mobile");String email=("email");String qq=("qq");String address=("address");String company=("company");String postcode=("postcode");Address addr=new Address();(username);(name);(sex);(email);(mobile);(qq);(address);(company);(postcode);(addr);List<Address> list=(username);("list", list);}(6)、删除操作;else if("delete".equals(method)){int id=("id"));(id);List<Address> list=(username);("list", list);}(7)、修改操作;else if("edit".equals(method)){int id=("id"));List<Address> list=(id);("list", list);topage="";}else if("update".equals(method)){int id=("id"));String name=("name");String sex=("sex");String mobile=("mobile");String email=("email");String qq=("qq");String address=("address");String company=("company");String postcode=("postcode");Address addr=new Address();(id);(name);(sex);(email);(mobile);(qq);(address);(company);(postcode);(addr);List<Address> list=(username);("list", list);}三、修改页面中的内容;(1)、从数据库中获取对应联系人的信息;<%List<Address> list=(List<Address>)("list");Iterator<Address> it=();Address address=null;int i=1;while()){address=();%><tr style="height:20px;"<%if(i%2==0){ %>bgcolor="eeeeee"<%} %>><td><%=() %></td><td><%=() %></td><td><%=() %></td><td><%=() %></td><td><%=() %></td><td><%=() %></td><td><%=() %></td><td><%=() %></td><%i++;}%>(2)、导入相应的包;<%@page language="java"import=".*" pageEncoding="GB18030"%><%@page import="entity.*"%><%@page import="dao.*"%>(3)、对页面的操作栏里的修改和删除进行设置;<td><a href="method=edit&id=<%= () %>">修改</a></td><td><a href="method=delete&id=<%= () %>">删除</a></td>五、部署XML文件;<servlet><servlet-name>AddressServlet</servlet-name><servlet-class></servlet-class></servlet><servlet-mapping><servlet-name>AddressServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>六、测试运行;实现分页设置一、定义一个实体类:; 定义相应的变量(pageSize,pageNo,totalPages,firstPageNo,previousPageNo,nexPageNo,lastPageNo,totalRecords,list),产生对应的get()和set()方法;二、在AddressDAO中添加相应的方法和属性;(1)、在AdderssDAO中增加一个变量page和其对应的set和get方法private Page<Address> page=new Page<Address>();public Page<Address> getPage() {return page;}public void setPage(Page<Address> page) {= page;}(2)、定义一个方法用于分页;public List<Address> pageData(String username,int pageSize,int pageNo){ArrayList<Address> list=new ArrayList<Address>();int totalRecords=0;(1);(pageSize);(pageNo);DBOperation db = new DBOperation();if()){String sql="select count(*) as totalRecords from address whereusername='"+username+"'";(sql);if())try {totalRecords=().getInt("totalRecords");} catch (SQLException e) {();}}();();();(totalRecords);int totalPages=totalRecords%pageSize==0totalRecords/pageSize:totalRecords/pageSize+1;(totalPages);(totalPages);(pageNo<=11:pageNo-1);(pageNo>=totalPagestotalPages:pageNo+1);String sql1="select top "+pageSize*pageNo +" id from address whereusername='"+username+"' order by id";String sql2="select top "+pageSize*(pageNo-1) +" id from address whereusername='"+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()){(sql3);while()){address=new Address();try {().getInt("id"));().getString("username"));().getString("sex"));().getString("name"));().getString("mobile"));().getString("email"));().getString("qq"));().getString("company"));().getString("address"));().getString("postcode"));(address);} catch (SQLException e) {();}}}(); (); ();(list);return list;}}三、对AddressServlet进行修改,通过Servlet处理查询请求;else{ AddressDAO dao=new AddressDAO();String pageSize=("pageSize");if(pageSize==null||("")){pageSize="5";}String pageNo=("pageNo");if(pageNo==null||("")){pageNo="1";}("pageSize", pageSize);("pageNo", pageNo);if("list".equals(method)){List<Address> list=(username, (pageSize), (pageNo));Page<Address> pagebean=();("list", list);("pagebean", pagebean);}四、修改页面;(1)、实现首页、前一页、后一页、尾页的超链接操作;<a href="javascript:'<%=() %>';">首页</a><ahref="javascript:'<%=() %>';">前一页</a><ahref="javascript:'<%=()%>';">后一页</a><a href="javascript:'<%=() %>';">尾页</a>(2)、分页的表单设计:<form name="form1"method="post"action="AddressServletmethod=list">pagesize为:<select name="pageSize"onchange="'1';"><option value="5"<%if()==5) {%>selected="selected"<% }%>>5</option><option value="10"<%if()==10) {%>selected="selected"<% }%>>10</option><option value="15"<%if()==15) {%>selected="selected"<% }%>>15</option><option value="20"<%if()==20) {%>selected="selected"<% }%>>20</option></select>显示总页数(totalrecords):<%=() %>pageNo为:<select name="pageNo"onChange=""><%int totalPages=();for(int j=1;j<=totalPages;j++){%><option value="<%=j%>" <%if()==j){ %>selected="selected"<% }%>><%=j%></option><% }%></select>五、测试运行;感想:通过这两个星期的上机实训,对整个企业管理系统的设计有了一定的了解。

相关主题