版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Servlet商品管理系统设计目录一、需求分析2二、总体设计 2三、详细设计 34.1 查询模块设计34.2添加模块设计44.3修改模块设计44.4删除模块设计44.5 Product 类设计 64.6 JSP 设计64.7 UI 界面美化54.8 环境配置5五、 关键程序源代码 75.1 JSP源代码75.2 Servlet源代码125.3 Product类代码18六、 运行截图21七、 心得体会 22精心整理网上商品信息处理需求分析编程实现网上商品处理界面,与数据库相连后,实现通过servlet对数据库信息进行操作,包括查询、添加、删除、更新修改记录等,并翻页显示结果。总体设计总体设计框架
2、如下图所示:其中Main.jsp为主页面,分别链接到四个子页面进行不同的操作。Query.jsp为查询界面,窗体显示商品ID,商品名称,商品数量标识,用户填入 想要进行的查询操作后,点击查询按钮,触发QueryServlet中Post函数;Add.jsp为添加界面,窗体同样显示商品ID,商品名称,商品数量标识,用户必 须填入要加入商品的ID号,而商品名称和数量可以为空值,点击添加按钮触发 AddServlet 中的 Post 函数;Update.jsp为修改界面,窗体同样显示商品ID,商品名称,商品数量标识,用户 必须填入要修改的商品ID号、商品名称及商品数量,此处不支持填写空值,点击修 改按
3、钮触发UpdateServlet中Post函数;Delete.jsp为删除界面,窗体同样显示商品ID,商品名称,商品数量标识,用户 可以填入其中一项进行查询,点击删除按钮,触发DeleteServlet中Post函数;考虑到缺省情况,上述子页面遇到无任何输入的情况下,默认连接数据库,直接查询所有表项,并在result.jsp中分页显示结果。精心整理详细设计一、查询模块设计查询功能分为四种情况,首先,若填入ID不为空,则按照ID查询,调用QueryByld() 函数;若ID为空,判断name是否为空,若不为空,则按照 name查询,调用 QueryByName(函数;若name为空,判断num是
4、否为空,若不为空,则按照 num 查询,调用QueryByNum()函数;最后,若均为空,则为默认情况,调用ShowAII()函数显示数据库中所有表项。大体框架如下QueryByld()、QueryByName() QueryByNum()函数均为了实现查询功能,大致相同,仅传递的SQL语句不同;为了使结果能够分页显示,这里将从数据库返回的表项一精心整理次填入到自定义类Product实例中,并加入ArrayList容器,用到函数MakeList(),并 用session传递到result.jsp进行分页处理显示。二、添加模块设计添加模块主要有两种情况,首先判断 JSP中输入的ID是否为空,若为
5、空,因为 主键为空,所以添加无效,因此为默认情况,调用ShowAII()函数返回所有表项,分页显示;若不为空,则可执行添加工作,为显示添加成功,此处再次调用ShowAll()显示出你所添加的项已经存在于表项当中。大致框架如下:三、修改模块设计修改模块功能分为两种情况首先,若填入ID不为空,则按照填入消息对 SQL语句进行传递,修改后再次查询所有表项,显示出来后证明确实将所需修改的表项 进行了修改;若ID为空,为默认情况,调用ShowAll()函数,全部显示。大致框架如下:四、删除模块设计删除功能分为四种情况,首先,若填入ID不为空,则按照ID删除,调用DeleteByld() 函数;若ID为空
6、,判断name是否为空,若不为空,则按照name删除,调用 DeleteByName()函数;若name为空,判断num是否为空,若不为空,则按照 num 删除,调用DeleteByNum()函数;最后,若均为空,贝卩为默认情况,调用ShowAll()函数显示数据库中所有表项。大致框架如下:精心整理五、Product类设计该类的主要功能是将表项封装到一个实例中去,而后将实例一次放入一个list中,而后可以通过检索list来一次输出,因此,Product类中主要有与数据库表项相匹配 的变量和相应变量的get、set方法。六、JSP设计上述四个JSP子页面的主要功能是为了给用户提供输入框,根据条件
7、获取相应数 据库表项,因此JSP大致需一下几个部分:首先是为了和Servlet相关联的form :vform n ame二query method二post acti on二servlet/QueryServletv/form在form中添加入文字和文本域供用户使用,例如:vin put type二text n ame=id size=30还有提交按钮,触发Servlet行为,例如:in put type二submit value二Query七、UI界面美化为了使用户使用时更加美观、方便,这里使用可视化的Dreamweaver软件进行界面设计、图片插入,而后将 JSP弋码填入具体JSP进行路径
8、、链接配置。八、环境配置1、 Java运行环境: MyEclipse 6.5, Java web projec;2、数据库平台:MySql;3、服务器平台:TomCat 6;关键程序源代码1、JSP源代码1) Ma in .jsp 代码:精心整理精心整理vdiv alig n=ce nterv/div&n bsp; 精心整理精心整理2) Query.jsp代码:vform n ame=add method=Post actio n=servlet/QueryServlet &n bsp;3) Add.jsp 代码:精心整理 &n bsp;4) Update.jsp 代码: 精心整理 &n bs
9、p;5) Delete.jsp 代码:精心整理精心整理v/trv/td vin put type二text n ame=n ame &n bsp;6) Result.jsp代码:精心整理%int curre ntPage = 1;int firstCount = 1;int en dCo unt = 1;List list = null ;list =(ArrayList)sessio n. getAttribute(list);int everyPage =2;int totalCo unt = list.size();int totalPage = totalCo unt / everyP
10、age + 1;String pageNum = request.getParameter(pageNum); if (pageNum = null | pageNum.equals() curre ntPage = 1; else curre ntPage = In teger.parse In t(pageNum);if (curre ntPage totalPage) curre ntPage = totalPage;if (curre ntPage 0 & curre ntPage 0 & curren tPage 0 & (currentPage = totalPage) en dC
11、o unt = firstCo unt + totalCo unt % everyPage;%id商品名称商品数量%for (int i = firstCount; i 精心整理 上一页下一页a href=Result.jsp?pageNum= a href=Result.jsp?pageNum= a href=/Ma in .jspgo back to main page2、Servlet源代码1) AddServlet代码:(仅列出关键部分)/关键变量:String id二new String();Stri ng n ame 二new Stri ng();int num;String a=
12、new String();Stri ng sql1= new Stri ng();精心整理精心整理Stri ng sql2 二new Stri ng();Conn ecti on conn 二 nu II;Statement stmt = null;ResuItSet rs = null;PreparedStateme nt ps=n ull;/关键函数public void doPost(HttpServletRequest request, HttpServletResp onse resp onse) throws ServletExcepti on, I OExceptio nid =
13、 request.getParameter(id);n ame=request.getParameter( name);a=request.getParameter( nu m);if(a=null|a.equals()num=0;else num=ln teger.parse In t(a);if(id!=null&!id.equals()Add(request,resp on se,id, name ,nu m);elseShowAII(request,resp on se);Public void Add(HttpServIetRequest request,HttpServIetRes
14、p onseresponse,String id,String name,int num) throws IOException, ServletExceptionArrayList l=new ArrayList();trycatch(Excepti on e)trystmt=c onn .createStateme nt();sqI1=i nsert into sha ngpin values (?,?,?);ps=(PreparedStateme nt)c onn. prepareStateme nt(sql1);精心整理ps.setStri ng(1,id);ps.setStri ng
15、(2 ,n ame);ps.setl nt(3 ,nu m);ps.execute();String sql=new Strin g(select * from sha ngpin);rs=stmt.executeQuery(sql);l=(ArrayList) MakeList(rs);HttpSessi on s=request.getSessi on();s.setAttribute(list, l); request.getRequestDispatcher(/Result.jsp).forward(request, resp on se);catch(SQLExceptio n e)
16、public void ShowAll(HttpServletRequest request,HttpServletResp onse resp on se) throws IOExcepti on, ServletExceptio nArrayList l=new ArrayList();trycatch(Excepti on e)trystmt=c onn .createStateme nt();String sql=new Strin g(select * from sha ngpin);rs=stmt.executeQuery(sql);l=(ArrayList) MakeList(r
17、s);HttpSessi on s=request.getSessi on();s.setAttribute(list, l);request.getRequestDispatcher(/Result.jsp).forward(request, resp on se);catch(SQLExceptio n e)public List MakeList(ResultSet rs) throws SQLExcepti onList l=new ArrayList();while(rs. next()Product p=new Product(rs.getStri ng(1),rs.getStri
18、 ng(2) ,rs.getI nt(3);精心整理l.add(p);return l;public void init() throws ServletException 2) QueryServlet代码:HttpServletResp onsepublic void doPost(HttpServletRequest request, resp on se)throws ServletException, lOException id = request.getParameter(id);n ame二request.getParameter (n ame);a=request.getPa
19、rameter( nu m);if(a= null |a.equals()num=0;else num=ln teger. parse In t (a);if(id!= null &!id.equals()QueryByld(request,resp on se,id);else if (name!= null &!name.equals()精心整理QueryByName(request,resp on se, name);else if(num!=0)QueryByNum(request,resp on se, nu m);elseShowAII(request,resp on se);pu
20、blic void QueryByld(HttpServletRequest request,HttpServletResponseresp on se,Stri ng id)ArrayList l= new ArrayList();tryClass. forNameconn二DriverManager. getConnectioncatch (Exception e)System. err.println(Openconn:+e.getMessage();精心整理trystmt二c onn .createStateme nt();Stri ng sql= new Stri ng(select
21、 * from sha ngpin where id=+id+);rs二stmt.executeQuery(sql);l=(ArrayList) MakeList(rs);HttpSessi on s=request.getSessi on();s.setAttribute(list, l);request.getRequestDispatcher(/Result.jsp).forward(request, response);catch (Exception e)System. out.print(SQL Exception”);3) UpdateServlet 代码:public void
22、 doPost(HttpServletRequest request, HttpServletResponse resp on se)throws ServletException, lOException id = request.getParameter(id);n ame=request.getParameter (n ame);精心整理精心整理a=request.getParameter(” nu m);if(a= null |a.equals()num=O;else num=ln teger. parse In t (a);ArrayList l= new ArrayList();i
23、f(id!= null &!id.equals()tryClass. forNameconn二DriverManager. getConnectioncatch (Exception e)System. err.println(Openconn:+e.getMessage();trystmt=c onn .createStateme nt();sql仁update sha ngpin set n ame=?,num二? where id二?”;ps=(PreparedStateme nt)c onn .prepareStateme nt(sql1);精心整理ps.setStri ng(1, n
24、ame);ps.setl nt(2 ,nu m);ps.setStri ng(3,id);ps.execute();rs=stmt.executeQuery(select * from sha ngpin ”);l=(ArrayList) MakeList(rs);HttpSessio n s=request.getSessi on();s.setAttribute(list, l);request.getRequestDispatcher(/Result.jsp).forward(request, response);catch (Exception e)System. out.print(
25、SQL Exception”);4) DeleteServlet代码:public void DeleteByld(HttpServletRequest request,HttpServletResponse resp on se,Stri ng id)ArrayList l= new ArrayList();try精心整理精心整理Class. forNameconn二DriverManager. getConnectioncatch (Exception e)System. err.println(Openconn:+e.getMessage();trystmt=c onn .createS
26、tateme nt();sql二delete from shangpin where id=+id+; stmt.executeUpdate(sql);rs=stmt.executeQuery(select * from sha ngpin ”);l=(ArrayList) MakeList(rs);HttpSessi on s=request.getSessi on();s.setAttribute(list, l);request.getRequestDispatcher(/Result.jsp).forward(request, response); catch (Exception e
27、)System. out.print(SQL Exception”);精心整理3、Product类代码public class Product public String p_id;public String p_name;public int p_num;Product(String id,String name, int num) p_id=id;p_n ame=n ame;p_num二nu m; public String getld() return p_id;public String getName()return p_name;public int getNum()return p_num; 运行截图一、数据库创建:三、查询界面:一、显示查询结果:精心整理精心整理二、添加功能:三、添加入数据库:四、修改操作:五、修改结果:六、删除操作:七、删除结果:心得体会通过一个学期对JAVA编程的学习,我对JAVA有了一定的理解和认识, 一切 皆为对象”的思想让编程变的极为方便和简单。之前学习了C/C+编程,因为学习不深入,感觉很难迅速应用到实际中,只能做一些简单的实例,学习了 JAVA之后, 由于JAVA提供了充足的包,许多功能可以通过简单的调用来实现,类的继承虽然 是单继承,但是很容易向上转型统一结构,之前觉得编程是一个很复杂的过程,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 祖国在我心中话题演讲稿(32篇)
- 小学科学教学工作总结13篇
- 就业前景的调研报告范文8篇
- 安徽省合肥市2025届高三上学期教学诊断检测(四)数学含答案
- 2024年金属基超硬材料项目投资申请报告代可行性研究报告
- 陕西省榆林市(2024年-2025年小学五年级语文)统编版专题练习(上学期)试卷及答案
- 湖北省武汉市(2024年-2025年小学五年级语文)人教版期末考试((上下)学期)试卷及答案
- 2024年饮料、酒及酒精专用原辅料项目投资申请报告代可行性研究报告
- 高考生物一轮专题突破练专题一细胞的分子组成和结构功能教案
- 上海市市辖区(2024年-2025年小学五年级语文)人教版摸底考试((上下)学期)试卷及答案
- 期中测试卷-2024-2025学年统编版语文二年级上册
- GB/T 44421-2024矫形器配置服务规范
- 2024年新高考Ⅰ卷、Ⅱ卷、甲卷诗歌鉴赏试题讲评课件
- 10以内口算题每页50道
- 健康科普宣教课件
- 电气化区段的轨道电路
- 超市商品陈列艺术培训课件
- 热继电器结构与原理教学资料ppt课件
- 《儿童的一百种语言》读后感
- 小学英语教材SUCCESSWITHENGLISH第三册教材分析
- 纱线的结构参数与性能指标
评论
0/150
提交评论