版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、程序设计报告课程名称:JSP程序设计设计题目:网络交友系统学号:1325332146姓名:宇超学 院:信息与控制工程学院JS P 设 计 报 告 书一. 实训目的JSP1. 通过课程设计把JSP程序设计这门课所学的容融会贯通,学会 设计程序、开发应用软件的基本能力。2 通过设计能使学生更好掌握 JSP面向对象基本编程技术和方法。3培养学生查阅文献资料及编写技术报告的能力。二. 实训项目网络交友三. 实训要求报告体现容:1 、 系统分析需求分析可行性分析经济可行性技术可行性(采用开发模式的特点)2、系统设计系统目标系统功能结构(文字 + 结构图)系统流程图系统预览(几个主要页面抓图)文件夹组织结
2、构3、数据库设计数据库需求分析数据库概念设计数据库逻辑结构设计4、模块设计(各个模块及主要代码)5、简要总结及自我评价四. 进度安排1、代码编写调试( 4.5 天):程序代码编写、调试、测试。2、撰写报告( 1 天):总结课程设计任务和容。1、系统分析网络交友系统,采用 MVC 模式实现各个模块,其目的是为了掌握web 应用中常用基本开发方法。JSP引擎为Tomcat6.0;数据库是SQL Server 2000数据库连接操作使用加载 Java数据库驱动程序方式。2、系统设计1)系统功能结构网络交友平台主页: 为用户提供一个交友的新平台,其导航作用。 会员注册: 新会员填写表单,包括会员名、
3、Email 地址等信息。如果输入的会员名已经被其他用户注册使用,系统提示新用户更改自己的会 员名。会员登录:输入会员名,密码。如果用户输入的会员名或密码错误, 系统将显示错误信息。上传照片:如果登陆成功,用户可以使用该模块上传自己的照片。 返回主页:未成功注册的用户可返回首页。2)系统流程图模块流程图如下: c会莫歷嫩;上烤餐片采用的MVC开发模式,流程图如下:3)文件夹组织结构本次设计使用的 Web服务目录是 mkfriend,是在Tomcat安装目录的webapps目录下建立 Web服务目录。mkfrie ndWEB-INFclassesmybea n,m yservletdata,co
4、ntrol3、模块设计(各个模块及主要代码、截图)1)数据库设计使用SQL Server 2000建立一个数据库 Welcome,该库有一个表: member表。会员的注册信息存入member表中,member的主键是log name, member表的详细结构设计,各个字段值的说明如下:log name:存储会员登录名字, password:存储会员登录密码, pho ne:存储会员的,email:存储会员的 email地址,message存储会员的简 历。2)网络交友平台主页主要页面运行效果如下:A«ft代码如下:head.txt(导航条文件,是嵌入到自己的页面中,便于维护的。)
5、<% page con te ntType="text/html; charset=GB2312"%><CENTER>vpxfont size="7" face="华文行楷"> 网络交友平台</font><P></CENTER>vtable width="814" height="36" border="0"alig n="ce nter"cellPadding="1"
6、cellSpacing="1"><tr valig n="bottom"<td alig n="ce nter"><div alig n="ce nter"xfo nt color="#000000" size="4" face="华文行楷"><A href="register.jsp"> 会员注册 v/A>v/fon t></div></td><
7、td alig n="ce nter"><div alig n="ce nter"xfo nt color="#000000" size="4" face="华文行楷"><A href="login.jsp"> 会员登录 v/A>v/fon t></div></td><tdalig n="ce nter"><divalig n="ce nter"xfo
8、ntcolor="#000000" size="4" face=" 华 文 行 楷 "><A href="upload.jsp"> 上 传 照 片 </A></font></div></td><td align="center"><div align="center"><font color="#000000" size="4" face=&
9、quot; 华 文 行 楷 "><A href=".jsp"> 浏 览 会 员 </A></font></div></td><td align="center"><div align="center"><font color="#000000" size="4" face=" 华 文 行 楷 "><A href=".jsp"> 修 改
10、 注 册 信 息 </A></font></div></td><td align="center"><div align="center"><font color="#000000" size="4" face=" 华 文 行 楷 "><A href=".jsp"> 修 改 密 码 </A></font></div></td><
11、td align="center"><div align="center"><font color="#000000" size="4" face=" 华 文 行 楷 "><A href=".jsp"> 退 出 登 录 </A></font></div></td><td align="center"><div align="center&q
12、uot;><font color="#000000" size="4" face=" 华 文 行 楷 "><A href="index.jsp"> 返 回 主 页 </A></font></div></td></tr></font></table>index.jsp (有导航条,欢迎语和图片05.jpg组成。)<% page contentType="text/html; charset
13、=GB2312"%><HEAD><%include file="head.txt"%></HEAD><HTML><BODY bgcolor=#9933CC><CENTER> <h1><font size="5" face=" 华文行楷 " color=#FFFFFF> 欢迎您来这 里结交朋友 </Font></h1><image src="05.jpg" width=500
14、height=350></image> </CENTER></HEAD></Body></HTML>3) 配置文件本次设计的 Servlet类的包名均为 myservlet.control,需要配置此文件, 代码如下: Web.Xml<?xml version="1.0" encoding="ISO-8859-1"?><web-app><servlet><servlet-name>register</servlet-name>&l
15、t;servlet-class>myservlet.control.HandleRegister</servlet-class></servlet><servlet-mapping><servlet-name>register</servlet-name><url-pattern>/helpRegister</url-pattern></servlet-mapping><servlet><servlet-name>login</servlet-name> &
16、lt;servlet-class>myservlet.control.HandleLogin</servlet-class> </servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/helpLogin</url-pattern></servlet-mapping><servlet><servlet-name>upload</servlet-name><serv
17、let-class>myservlet.control.HandleUpload</servlet-class></servlet><servlet-mapping><servlet-name>upload</servlet-name><url-pattern>/helpUpload</url-pattern></servlet-mapping><servlet><servlet-name>lookRecord</servlet-name><servl
18、et-class>myservlet.control.HandleDatabase</servlet-class></servlet><servlet-mapping><servlet-name>lookRecord</servlet-name><url-pattern>/helpShowMember</url-pattern></servlet-mapping></web-app>4) 会员注册当新会员注册时,该模块要求用户必须输入会员名、密码信息,否则不允许注册,用户的注册信息
19、被存入数据库的member中主要页面运行效果如下:rF .=亠工1«/ flHT? _老$練却: :*1 珂厂IVKttRiWI弹曲世由罠" MS2可出电寻耳 畑rf施斜楼常 * 藉4f it静車般话妙阳7睛時認 比转禹帘右瓷直桂乐-去-MENRh JK站牯卫HV:i的 谢如USJavabean模型)用来描述用户注册信息。代码如下:Register.javapackage mybean.data;public class Register String logname="",password="",email=""
20、,phone="",message=""String backNews;public void setLogname(String name) logname=name;public String getLogname() return logname;public void setPassword(String pw)password=pw;public String getPassword()return password;public void setEmail(String em)email=em;public String getEmail()
21、return email;public void setPhone(String ph)phone=ph;public String getPhone()return phone;public void setMessage(String m)message=m;public String getMessage()return message;public String getBackNews()return backNews;public void setBackNews(String s)backNews=s;Javaservlet控空制器)用来连接数据库,将用户提交的信息写入到membe
22、r 表中,并将转发给 show.jsp 页面查看注册反馈信息。 代码如下:HandleRegister.javapackage myservlet.control;import mybean.data.*;import java.sql.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleRegister extends HttpServletpublic void init(ServletConfig config) throws ServletExceptionsu
23、per.init(config);tryClass.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");catch(Exception e)public String handleString(String s)trybyte bb=s.getBytes("iso-8859-1");s=new String(bb);catch(Exception ee)return s;public void doPost(HttpServletRequest request,HttpServletResponse
24、response)throwsServletException,IOException Connection con;Statement sql;Register reg=new Register();request.setAttribute("register",reg);String logname=request.getParameter("logname").trim(), password=request.getParameter("password").trim(), email=request.getParameter(
25、"email").trim(), phone=request.getParameter("phone").trim(), message=request.getParameter("message");Stringuri="jdbc:sqlserver:/:1433;DatabaseName=Welcome"if(logname=null)logname=""if(password=null)password=""boolean isLD=true;for(
26、int i=0;i<logname.length();i+) char c=logname.charAt(i);if(!(c<='z'&&c>='a')|(c<='Z'&&c>='A')|(c<='9'&&c>='0')isLD=false;boolean boo=logname.length()>0&&password.length()>0&&isLD; Strin
27、g backNews=""trylogname=handleString(logname); password=handleString(password); phone=handleString(phone);email=handleString(email); message=handleString(message);String insertRecord ="('"+logname+"','"+password+"','"+email+"','
28、;"+phone+"')" con=DriverManager.getConnection(uri,"sa","sa");String insertCondition="INSERT INTO memberVALUES"+insertRecord;sql=con.createStatement();if(boo)int m=sql.executeUpdate(insertCondition);if(m!=0)backNews=" 注册成功 "reg.setBackNews(ba
29、ckNews);reg.setLogname(logname);reg.setPassword(password);reg.setEmail(email);reg.setPhone(phone);reg.setMessage(message);elsebackNews="信息填写不完整或名字中有非法字符reg.setBackNews(backNews);con.close();catch(SQLException exp)backNews="该会员名已被使用,请您更换名字"+exp;reg.setBackNews(backNews);RequestDispatch
30、er dispatcher=request.getRequestDispatcher("show.jsp"); dispatcher.forward(request,response);public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOExceptiondoPost(request,response);JSP页面(视图)本模块 的视图 有两个 JSP页面:register.jsp和 show.jsp。register.jsp页
31、面负责提供输入注册信息界面; show.jsp负责显 示注册反馈信息。代码如下:register.jsp<% page contentType="text/html; charset=GB2312"%><HEAD><%include file="head.txt"%><style type="text/css"><!-.STYLE1 font-family: " 华文行楷 "font-size: 20px;.STYLE2 font-size: 20px->
32、</style></HEAD><HTML><BODY bgcolor=#9933CC><Font size=2><CENTER><FORM action="helpRegister" name=form method=post><table> 输入您的信息,用户名称必须由字母和数字组成,带* 号项必须填写。<tr><td><span class="STYLE1"> 会员名称 </span><span cla
33、ss="STYLE2">:</span></td><td><Input type=text name="logname">*</td></tr><tr><td><span class="STYLE1"> 设置密码 </span>:</td> <td><Input type=password name="password">*</td></
34、tr> <tr><td><span class="STYLE1"> 电子 </span>:</td> <td><Input type=text name="email"></td></tr><tr><td><span class="STYLE1"> 联系 </span>:</td><td><Input type=text name="p
35、hone"></td></tr></table><table width="270"><tr><td width="262"><Font size=4> <div align="left"><span class="STYLE1"> 输入您的简历和交友标准: </span></div></td></tr><tr><td>&
36、lt;TextArea name="message"Rows="6"cols="30"></TextArea></td></tr><tr><td><Input type=submit name="g"value=" 提交 "></td></tr> </table></Form></CENTER></Body></HTML>show.js
37、p<% page contentType="text/html; charset=GB2312"%><HEAD><%include file="head.txt"%></HEAD><% page import="mybean.data.Register"%><jsp:usebean id="register" type="mybean.data.Register" scope="request"/><
38、;HTML><BODY bgcolor=#9933CC><CENTER><font color="#FFFFFF" size="4.5" face=" 华 文 行 楷 " color="#FFFFFF"><BR><jsp:getProperty name="register" property="backNews"/> </Font><table> <tr><td>
39、; 注册的会员名称 :</td><td><jsp:getProperty name="register" property="logname"/></td></tr><tr><td> 注册的电子 :</td><td><jsp:getProperty name="register" property="email"/></td></tr><tr><td>
40、; 注册的联系 :</td><td><jsp:getProperty name="register" property="phone"/></td></tr></table><table><tr><td> 您的简历和交友标准: </tr></td> <tr><td><TextArea name="message" Rows="6" cols="3
41、0"> <jsp:getProperty name="register" property="message"/> </TextArea></tr></td></CENTER></BODY></HTML>5) 会员登录用户可在该模块输入自己的会员名和密码,系统将对会员名和密 码尽享验证,如果输入用户名或密码有错误,将提示用户输入的用户 名和密码不正确。主要页面运行效果如下:网珞女欢年台Javabean模型)用来描述用户登录信息。代码如下:Login.jav
42、apackage mybean.data; public class Login String logname,password, backNews=""boolean success=false;public void setLogname(String name) logname=name;public String getLogname()return logname;public void setPassword(String pw) password=pw;public String getPassword()return password;Public Stri
43、ng getBackNews()return backNews;public void setBackNews(String s)backNews=s;public void setSuccess(boolean b)success=b;public boolean getSuccess()return success;Javaservlet控制器)用来连接数据库,查询member表,并验证用户输 入 的 会 员 名 和 密 码 是 否 在 member 表 中 , 将 用 户 转 发 到 showSuccess.js页面查看登录反馈信息。代码如下:HandleLogin.javapackag
44、e myservlet.control;import mybean.data.*;import java.sql.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class HandleLogin extends HttpServletpublic void init(ServletConfig config) throws ServletException super.init(config);tryClass.forName(".microsoft.sqlserver.jdb
45、c.SQLServerDriver"); catch(Exception e)public String handleString(String s)trybyte bb=s.getBytes("iso-8859-1"); s=new String(bb); catch(Exception ee) return s;public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException Connection co
46、n;Statement sql;Login loginBean=null;String backNews=""HttpSession session=request.getSession(true);tryloginBean=(Login)session.getAttribute("login");if(loginBean=null)loginBean=new Login(); session.setAttribute("login",loginBean);catch(Exception ee)loginBean=new Login(
47、);session.setAttribute("login",loginBean);String logname=request.getParameter("logname").trim(), password=request.getParameter("password").trim(); boolean ok=loginBean.getSuccess();logname=handleString(logname);password=handleString(password); if(ok=true&&lognam
48、e.equals(loginBean.getLogname() backNews=logname+" 已经登录了 "loginBean.setBackNews(backNews);elseStringuri="jdbc:sqlserver:/:1433;DatabaseName=Welcome"boolean boo=(logname.length()>0)&&(password.length()>0);trycon=DriverManager.getConnection(uri,"sa"
49、,"sa");String Condition="select * from member where logname= '"+logname+"'andpassword= '"+password+"'"sql=con.createStatement();if(boo)ResultSet rs=sql.executeQuery(Condition);boolean m=rs.next();if(m=true)backNews=" 登录成功 "loginBean.s
50、etBackNews(backNews);loginBean.setSuccess(true); loginBean.setLogname(logname);else backNews=" 您输入的用户名不存在,或密码不匹配 "loginBean.setBackNews(backNews);loginBean.setSuccess(false);loginBean.setLogname(logname);loginBean.setPassword(password);else backNews=" 您输入的用户名不存在,或密码不匹配 " loginBea
51、n.setBackNews(backNews); loginBean.setSuccess(false); loginBean.setLogname(logname);loginBean.setPassword(password);con.close();catch(SQLException exp)backNews=""+exp;loginBean.setBackNews(backNews);loginBean.setSuccess(false);RequestDispatcher dispatcher=request.getRequestDispatcher("
52、;show.jsp"); dispatcher.forward(request,response);public void doGet(HttpServletRequest request,HttpServletResponseresponse)throws ServletException,IOException doPost(request,response);JSP 页面(视图)本模块的视图有两个 JSP 页面: login.jsp 和showSuccess.jsp login.jsp 页面负责提供输入登录界面;showSuccess.jsp负责显示登录反馈信息。代码如下:lo
53、gin.jsp<% page contentType="text/html; charset=GB2312"%><HEAD><%include file="head.txt"%><style type="text/css"><!-.STYLE2 font-family: " 华文行楷 "font-size: 20px;color: #FFFFFF;.STYLE6 font-family: " 华文行楷 " font-size: 18px; c
54、olor: #FFFFFF; -></style> </HEAD><HTML><BODYbgcolor=#9933CC><Fontsize=2><CENTER><BR><BR><table border=2><!-DWLayoutTable-><tr><th width="248" height="25" valign="top"><span class="STYLE2&
55、quot;> 请你登录 </span></tr><tr><th height="20" valign="top"><span class="STYLE6"> 会 员 名称:v/spa n><Input type=text name="logname">v/tr>vtr>vth height="31" valign="top">vspan class="STYLE6&
56、quot;> 输 入 密码:v/spa n>vInput name="password" type=password>v/tr>v/table>vBR>vInput type=submit name="g" value=" 提交 ">v/FORM>v/CENTER>v/BODY>v/HTML>showSuccess.jspv% page contentType="text/html; charset=GB2312"%><% page im
57、port="mybean.data.Login"%><jsp:usebean id="login" type="mybean.data.Login" scope="session"/><HEAD><% include file="head.txt"%></HEAD><HTML><BODY bgcolor=#9933CC><CENTER><font color="#FFFFFF" s
58、ize="6" face=" 华文行楷 "> <% if(login.getSuccess()=true)<jsp:getPropertyname="login"<jsp:getPropertyname="login"<jsp:getPropertyname="login"%> <BR> 登 录 会 员 名 称 : property="logname"/><% else%> <BR> 登 录 会 员
59、 名 称 : property="logname"/><BR> 登 录 会 员 密 码 : property="password"/><% %></FONT></CENTER></BODY></HTML>6) 上传照片用户可在该模块上传自己的照片,如果 member 中已经存有一幅 照片,新上传的照片将替换原有的照片。用户在注册时,注册模块给 会员的照片是默认的一幅图像: public.jpg.夏伸K ttJL好*I蔺+7鶴4 ( f线牌廈丄代协墨业崑井久韩it*第十Ji
60、石噹席朋严*題富尊,耕*认巧和代码如下:Javabean模型)用来描述用户上传的照片图像文件的有关信息。代码如下:UploadFile.javapackage mybean.data;public class UploadFileString fileName,savedFileName,backNews=""public void setFileName(String name) fileName=name;public String getFileName()return fileName;public void savedFileName(String name) s
61、avedFileName=name;public String getsavedFileName()return savedFileName;public String getBackNews()return backNews;public void setBackNews(String s)backNews=s;Javaservlet控制器)该servlet的对象的名字是 upload, upload控制器 负责检查用户是否是登录用户,如果用户没有登录, upload 控制器将 把用户定向到登录页面login.jsp,对于登录的用户,upload控制器负责 把用户提交的图像文件保存到当前 W
62、eb 服务目录的特定子目录 image 中,保存的图像文件名字由用户上传的文件名字添加上用户的会员名 作为前缀而构成。 Upload 控制器同时负责将保存的图像文件名存入 member表,然后将用户转发至 showUploadMess.jsp页面查看上传操作 的反馈信息。代码如下:HandleUpload.javapackage myservlet.control;import mybean.data.*;import java.sql.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public cl
63、ass HandleUpload extends HttpServletpublic void init(ServletConfig config) throws ServletException super.init(config);tryClass.forName(".microsoft.sqlserver.jdbc.SQLServerDriver");catch(Exception e)public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletExc
64、eption,IOExceptionHttpSession session=request.getSession(true);Login login=(Login)session.getAttribute("login");boolean ok=true;if(login=null)ok=false;response.sendRedirect("login.jsp");if(ok=true)String logname=login.getLogname();uploadFileMethod(request,response,logname);public
65、 void uploadFileMethod(HttpServletRequest request,HttpServletResponseresponse,Stringlogname)throws ServletException,IOExceptionUploadFile upFile=new UploadFile();String backNews=""tryHttpSession session=request.getSession(true); request.setAttribute("upFile",upFile);String tempFi
66、leName=(String)session.getId();File f1=new File(tempFileName);FileOutputStream o=new FileOutputStream(f1);InputStream in=request.getInputStream();byte b=new byte10000;int n;while(n=in.read(b)!=-1)o.write(b,0,n);o.close();in.close();RandomAccessFile random=new RandomAccessFile(f1,"r");int s
67、econd=1;String secondLine=null;while(second<=2)secondLine=random.readLine();second+;int position=secondLine.lastIndexOf('');if(position=-1)response.sendRedirect("upload.jsp");return;StringfileName=secondLine.substring(position+1,secondLine.length()-1);byte cc=fileName.getBytes(&
68、quot;ISO-8859-1"); fileName=new String(cc); fileName=fileName.replaceAll("","");StringcheckedStr=fileName.substring(0,fileName.indexOf(".");boolean isLetterOrDigit=true;for(int i=0;i<checkedStr.length();i+)char c=checkedStr.charAt(i);if(!(c<='z'&&c>='a')|(c<='Z'&&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年杭州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(a卷)
- 南宁市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(完整版)
- 榆林市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(完整版)
- 2026年黔东南苗族侗族自治州农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(有一套)
- 2026年白银市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(巩固)
- 许昌市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(突破训练)
- 2026年郑州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及一套完整答案详解
- 安康市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(模拟题)
- 通化市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及完整答案详解一套
- 长春市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(基础题)
- 锁骨动脉狭窄护理查房
- 彩钢瓦屋顶施工方案
- 高毅投资冯柳文章(全集)
- 部编版语文五年级上册第四单元【集体备课】
- 焦化厂设备维护检修规程
- 最优化理论与算法完整版课件陈宝林课件
- 新教科版五年级上册科学全册实验报告单(超全版)
- 尺寸公差形位公差
- 研学安全主题班会课件
- 2019围手术期中医诊疗方案
- 行政公文行政公文写作
评论
0/150
提交评论