JSP课程设计论文(会员管理系统)_第1页
JSP课程设计论文(会员管理系统)_第2页
JSP课程设计论文(会员管理系统)_第3页
JSP课程设计论文(会员管理系统)_第4页
JSP课程设计论文(会员管理系统)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告(JSP课程设计)班级:14级计算机科学与技术01班学号:141040200137姓名:许海峰目录1.需求分析 31.1系统模块设计 31.2数据库设计 32.系统管理 42.1设计说明 42.2页面管理 42.3JavaBean与Servlet管理 42.4配置文件 43.会员注册 63.1模型(Javabean) 63.2视图(JSP页面) 73.3 控制器(Servlet) 94.会员登录 114.1模型(Javabean) 114.2视图(JSP视图) 124.3控制器(Servlet) 135.修改密码 155.1模型(Javabean) 155.2视图(JSP页面) 165.3控制器(Servlet) 166.修改个人信息 186.1模型(Javabean) 186.2视图(JSP页面) 196.3控制器(Servlet) 206.3.1查询注册信息的Servlet 206.3.2修改注册信息的Servlet 227.上传照片 247.1模型(Javabean) 247.2视图(JSP页面) 257.3控制器(Servlet) 258.退出系统 299.设计总结 301.需求分析1.1系统模块设计 本系统做为资源管理网站的一个子模块,主要功能实现的功能是对于访问该网站的会员实行管理。 系统的主要模块如下: ·会员注册新会员要登录该网站享有对该网站的资源进行下载或者上传资料就必须的有自己的会员号码。会员在注册的时候需要填写会员名、登录密码、E-mail地址等信息。如果该会员已经存在与该系统的会员信息数据库中,则提示注册失败。 ·会员登录会员根据自己注册的会员号码和密码登录该系统。 ·修改会员资料如果会员的个人资料发生改变,可以对注册时候的个人资料进行修改。 ·修改密码会员为了自己的信息的安全可以对自己的注册时候填写的密码进行修改。 ·上传照片为了方便会员的交流,会员在注册之后可以修改自己的照片。1.2数据库设计 本系统采用的加载纯Java数据库驱动方式来方位数据库。使用Access数据库建立了一个shareresource数据库,该数据中建立一个userinfo表用来存储会员的信息。 1.2.1userinfo表的字段 会员的注册信息存入userinfo表中,userinfo的主键是loginid,标准的字段说明如下: ·loginid会员登录的帐号名字 ·password会员登录的密码 ·sex会员的性别 ·age会员的年龄 ·telphonenumber会员的电话号码 ·email会员的电子邮件地址 ·message会员的个人简介 ·pic会员的照片,在注册的时候会员默认的照片是pic.jpg。 1.2.2userinfo的详细设计如图1-1所示 图1-12.系统管理2.1设计说明 本设计使用的JSP引擎是Tomcat6.0,使用Web目录是share,share目录安装在Tomcat安装目录的webapps目录下建立的web目录。 在share目录下建立目录share\WEB-INF\classes然后建立子目录mybean和myservlet两个包,一个存放备案文件一个存放servlet文件。 连接数据库使用的建立连接桥来连接数据库,因此在设计系统之前在本地数据源新建share的系统数据源,方便实验Java连接数据库。2.2页面管理 本系统所有的JSP页面都保存在share目录中。 用户可以通过在浏览器的地址栏中输入http://服务器IP:9090/index.jsp来访问该主页。2.3JavaBean与Servlet管理 本系统使用的Javabean的包名均为mybean;使用的servlet的包名均为myservlet,把通过编译的Javabean类和servlet类分别存放在share\WEB-INF\classes\mybean和share\WEB-INF\classes\myservlet中。2.4配置文件 本系统使用的Servlet类的包名均为myservlet,需要配置Web服务木兰的web.xml文件。因此把写好的配置文件保存在share\WEB-INF中,配置文件的内容如下:<?xmlversion="1.0"encoding="ISO-8859-1"?><web-app><servlet><servlet-name>procregister</servlet-name><servlet-class>cregister</servlet-class></servlet><servlet><servlet-name>proclogin</servlet-name><servlet-class>clogin</servlet-class></servlet><servlet><servlet-name>handleexit</servlet-name><servlet-class>myservlet.handleexit</servlet-class></servlet><servlet><servlet-name>handlepassword</servlet-name><servlet-class>myservlet.handlepassword</servlet-class></servlet><servlet><servlet-name>handlepersonal</servlet-name><servlet-class>myservlet.handlepersonal</servlet-class></servlet><servlet><servlet-name>changeInfo</servlet-name><servlet-class>myservlet.changeInfo</servlet-class></servlet><servlet><servlet-name>GetPersonalInfo</servlet-name><servlet-class>myservlet.GetPersonalInfo</servlet-class></servlet><servlet><servlet-name>HandleUpload</servlet-name><servlet-class>myservlet.HandlePicUpload</servlet-class></servlet><servlet-mapping><servlet-name>procregister</servlet-name><url-pattern>/procregister</url-pattern></servlet-mapping><servlet-mapping><servlet-name>proclogin</servlet-name><url-pattern>/proclogin</url-pattern></servlet-mapping><servlet-mapping><servlet-name>handleexit</servlet-name><url-pattern>/handleexit</url-pattern></servlet-mapping><servlet-mapping><servlet-name>handlepassword</servlet-name><url-pattern>/handlepassword</url-pattern></servlet-mapping><servlet-mapping><servlet-name>handlepersonal</servlet-name><url-pattern>/handlepersonal</url-pattern></servlet-mapping><servlet-mapping><servlet-name>changeInfo</servlet-name><url-pattern>/changeInfo</url-pattern></servlet-mapping><servlet-mapping><servlet-name>GetPersonalInfo</servlet-name><url-pattern>/GetPersonalInfo</url-pattern></servlet-mapping><servlet-mapping><servlet-name>HandleUpload</servlet-name><url-pattern>/HandleUpload</url-pattern></servlet-mapping></web-app>3.会员注册 要登录该网站就必须要有会员名,因此如果没有成为会员的用户必须注册会员。在填写注册信息的使用必须填写会员名,登录密码,以及基本的信息。3.1模型(Javabean) 描述注册信息的Javabean中要有会员的名称、密码、年龄、性别、邮箱、电话号码以及一个注册提示信息。 在register.java对这些信息进行描述。具体代码如下:packagemybean;publicclassregister{ Stringloginid,password,sex,phone,message,email,pic; Stringbacknews; intage; publicvoidsetLoginid(Stringid){ loginid=id; } publicStringgetLoginid(){ returnloginid; } publicvoidsetPassword(Stringpw){ password=pw; } publicStringgetPassword(){ returnpassword; } publicvoidsetSex(String_sex){ sex=_sex; } publicStringgetSex(){ returnsex; } publicvoidsetPhone(String_phone){ phone=_phone; } publicStringgetPhone(){ returnphone; } publicvoidsetMessage(Stringme){ message=me; } publicStringgetMessage(){ returnmessage; } publicvoidsetEmail(String_email){ email=_email; } publicStringgetEmail(){ returnemail; } publicvoidsetBacknews(String_backnews){ backnews=_backnews; } publicStringgetBacknews(){ returnbacknews; } publicvoidsetPic(String_pic){ pic=_pic; } publicStringgetPic(){ returnpic; } publicvoidsetAge(int_age){ age=_age; } publicintgetAge(){ returnage; }}3.2视图(JSP页面) 本模块有两个视图,register.jsp与showRegisterInfo.jsp.一个提供用户填写注册信息,一个在用户提供注册信息之后返回是否注册成功以及显示注册的信息。 注册页面的效果图如图3-1所示图3-1 注册成功之后的效果图如图3-2所示图3-2 具体代码代码如下:Register.jsp<%@pagecontentType="text/html;charset=GBK"%><scriptlanguage="Javascript">functionon_submit(){ if(form.loginid.value==""){ alert("登录账号不能为空!"); form.loginid.focus(); returnfalse; } if(form.password.value==""){ alert("密码不能为空"); form.userpw.focus(); returnfalse; } if(form.password.value.length<5){ alert("密码至少5位"); form.userpw.focus(); returnfalse; } if(form.pw.value==""){ alert("校验密码不能为空"); form.userpw1.focus(); returnfalse; } if(form.passwprd.value!=form.pw.value){ alert("两次输入密码不同,请重新输入"); form.userpw.focus(); returnfalse; } if(form.email.value==""){ alert("邮箱不能为空"); form.email.focus(); returnfalse; } if(form.email.value.indexOf("@")==-1){ alert("邮箱格式不正确!"); form.email.focus(); returnfalse; }}3.3 控制器(Servlet) Servlet负责连接数据库,以及把会员填写的基本信息写入userinfo表中,并且把会员信息转发到showRegisterInfo.jsp页面。 具体代码如下:packagemyservlet;importmybean.*;importjava.sql.*;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassprocregisterextendsHttpServlet{ publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exceptione){ e.printStackTrace(); } } publicStringhandleString(Strings){ try{ bytebb[]=s.getBytes("iso-8859-1"); s=newString(bb); } catch(Exceptione1){ } returns; } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=GBK"); PrintWriterout=response.getWriter(); registerreg=newregister(); PreparedStatementsql; Connectioncon; request.setAttribute("register",reg); Stringloginid=request.getParameter("loginid").trim(); Stringpassword=request.getParameter("password").trim(); Stringsex=request.getParameter("sex").trim(); Stringemail=request.getParameter("email").trim(); Stringphone=request.getParameter("phone").trim(); Stringmessage=request.getParameter("message"); intage=Integer.parseInt(request.getParameter("age").trim()); Stringuri="jdbc:odbc:share"; booleanboo=loginid.length()>0&&password.length()>0; Stringbacknews=""; try{ con=DriverManager.getConnection("jdbc:odbc:share","",""); StringinsertCondition="insertintouserinfovalues(?,?,?,?,?,?,?,?)"; sql=con.prepareStatement(insertCondition); if(boo){ sql.setString(1,handleString(loginid)); sql.setString(2,handleString(password)); sql.setString(3,handleString(sex)); sql.setInt(4,age); sql.setString(5,phone); sql.setString(6,email); sql.setString(7,handleString(message)); sql.setString(8,"pic.jpg"); intm=sql.executeUpdate(); if(m!=0){ backnews="恭喜,注册成功"; reg.setBacknews(backnews); reg.setLoginid(handleString(loginid)); reg.setPassword(handleString(password)); reg.setSex(handleString(sex)); reg.setAge(age); reg.setEmail(email); reg.setPhone(phone); reg.setMessage(handleString(message)); reg.setPic("pic.jpg"); } } else{ backnews="注册失败"; reg.setBacknews(backnews); } con.close(); } catch(SQLExceptione){ backnews="用户已经存在,请您重新注册!"; reg.setBacknews(backnews); } RequestDispatcherdispatcher=request.getRequestDispatcher("/showregisterinfo.jsp");dispatcher.forward(request,response); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doPost(request,response); }}4.会员登录用户在此页面输入自己的会员号、密码登录该网站,由于本设计只设计了会员管理系统,模块之中只有个人中心是有效模块。会员进行个人中心能进行相关操作。4.1模型(Javabean) 模型login.java主要用来描述会员登录时候的信息,其中包括会员号loginid、会员密码password、已经会员登录状态显示issuccess以及显示小时backnews。由于在下面的JSP页面中都要显示当前的会员,因此在下面的页面都要使用这个Javabean。代码如下:packagemybean;publicclasslogin{ Stringloginid,password,backnews; booleanissuccess=false; publicvoidsetLoginid(Stringid){ loginid=id; } publicStringgetLoginid(){ returnloginid; } publicvoidsetPassword(Stringpw){ password=pw; } publicStringgetPassword(){ returnpassword; } publicvoidsetBacknews(Stringnews){ backnews=news; } publicStringgetBacknews(){ returnbacknews; } publicvoidsetSuccess(booleans){ issuccess=s; } publicbooleangetSuccess(){ returnissuccess; }}4.2视图(JSP视图) 本模块有两个个视图:login.jsp提供给用户填写登录信息,如果会员号和密码验证成功则进入主页面test.jsp。在主页面提供给会员该网站的全部功能,从主页面能够进入会员中心,会员中心能实现会员管理系统的全部功能。 登录页面的效果图如图4-1所示图4-1 登录成功之后显示的主页面效果图如图4-2所示 图4-2从这个页面进入个人中心personal.jsp页面。页面效果如图4-3所示:图4-34.3控制器(Servlet) 控制器用于连接数据库,查询会员填写的信息是否有效,验证密码是否正确,并把会员信息发送到test.jsp页面。具体代码如下:packagemyservlet;importmybean.*;importjava.sql.*;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassprocloginextendsHttpServlet{ publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exceptione){} } publicStringhandleString(Strings){ try{ bytebb[]=s.getBytes("iso-8859-1"); s=newString(bb); } catch(Exceptione1){} returns; } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=GBK"); PrintWriterout=response.getWriter(); loginloginbean=null;; Connectioncon; //ResultSetrs; Stringuri="jdbc:odbc:share"; //Statementsql; Stringbacknews=""; HttpSessionsession=request.getSession(true); try{ loginbean=(login)session.getAttribute("login"); if(loginbean==null){ loginbean=newlogin(); session.setAttribute("login",loginbean); } } catch(Exceptionee){ loginbean=newlogin(); session.setAttribute("login",loginbean); } PreparedStatementsql; Stringloginid=request.getParameter("loginid").trim(); Stringpassword=request.getParameter("password").trim(); loginid=handleString(loginid); password=handleString(password); booleanok=loginbean.getSuccess(); if(ok==true&&loginid.equals(loginbean.getLoginid())){ backnews=loginid+"已经登录了"; loginbean.setBacknews(backnews); } else{ booleanboo=(loginid.length()>0)&&(password.length()>0); try{ con=DriverManager.getConnection(uri,"",""); Stringcondition="select*fromuserinfowhereloginid=?andpassword=?"; sql=con.prepareStatement(condition); if(boo){ sql.setString(1,loginid); sql.setString(2,password); ResultSetrs=sql.executeQuery(); if(rs.next()){ backnews="欢迎登录"+loginid; loginbean.setBacknews(backnews); loginbean.setLoginid(loginid); loginbean.setSuccess(true); } else{ loginbean.setSuccess(false); backnews="帐号或者密码错误,请重新输入!"; loginbean.setBacknews(backnews); } } else{ loginbean.setSuccess(false); backnews="帐号或者密码错误,请重新输入!"; loginbean.setBacknews(backnews); } con.close(); } catch(SQLExceptione){} } RequestDispatcherdispatcher=request.getRequestDispatcher("/test.jsp");dispatcher.forward(request,response); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doPost(request,response); }}5.修改密码5.1模型(Javabean) Passwordbean.java主要来描述会员修改密码是填写的信息。主要有:旧密码oldpassword、新密码newpassword以及提示信息backnews。具体代码如下:packagemybean;publicclasspasswordbean{ Stringoldpasseord,newpassword,backnews; publicvoidsetOldpassword(String_oldpassword){ oldpasseord=_oldpassword; } publicStringgetOldpassword(){ returnoldpasseord; } publicvoidsetNewpassword(String_newpassword){ newpassword=_newpassword; } publicStringgetNewpassword(){ returnnewpassword; } publicvoidsetBacknews(String_backnews){ backnews=_backnews; } publicStringgetBacknews(){ returnbacknews; }}5.2视图(JSP页面) 本模块有一个视图:change_password.jsp提供用户填写修改的旧密码以及新密码显示密码修改后的状态。change_password.jsp的效果图如5-1所示图5-15.3控制器(Servlet) 控制器用来连接数据库已经修改userinfo表中的password字段的值。并能够显示修改成功与否和页面的跳转。具体代码如下:Handlepassword.javapackagemyservlet;importmybean.*;importjava.sql.*;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclasshandlepasswordextendsHttpServlet{ publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); } catch(Exceptione){} } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); booleanok=true; if(_login==null){ ok=false; response.sendRedirect("login.jsp"); } if(ok==true){ continueWork(request,response); } } publicvoidcontinueWork(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=GBK"); PrintWriterout=response.getWriter(); HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); Connectioncon=null; Stringloginid=_login.getLoginid(); passwordbean_passwordbean=newpasswordbean(); request.setAttribute("passwordbean",_passwordbean); StringoldPassword=request.getParameter("oldpassword"); StringnewPassword=request.getParameter("newpassword"); try{ con=DriverManager.getConnection("jdbc:odbc:share","",""); Statementsql=con.createStatement(); ResultSetrs=sql.executeQuery("SELECT*FROMuserinfowhereloginid='"+loginid+"'andpassword='"+oldPassword+"'"); if(rs.next()){ StringupdateString="UPDATEuserinfoSETpassword='"+newPassword+"'whereloginid='"+loginid+"'"; intm=sql.executeUpdate(updateString); if(m==1){ _passwordbean.setBacknews("密码修改成功"); _passwordbean.setOldpassword(oldPassword); _passwordbean.setNewpassword(newPassword); out.print("<script>alert('密码修改成功');location.href='personal.jsp'</script>"); } else{ out.print("<script>alert('密码修改失败');location.href='change_password.jsp'</script>"); _passwordbean.setBacknews("密码修改失败"); } } else{ out.print("<script>alert('密码修改失败');location.href='change_password.jsp'</script>"); _passwordbean.setBacknews("密码修改失败"); } con.close(); } catch(SQLExceptionexp){ out.print("<script>alert('修改成功')</script>"); _passwordbean.setBacknews("密码修改失败"+exp); } } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doPost(request,response); }}6.修改个人信息6.1模型(Javabean) 模型中需要两个Javabean,一个是前面注册的register.java用来描述会员旧的注册信息。一个是newInfo.java用来描述会员新的的信息。newInfo.java的代码如下:packagemybean;publicclassnewInfo{Stringloginid,newSex,newEmail,newPhone,newMessage,backnews;intnewAge; publicvoidsetLoginid(String_loginid){ loginid=_loginid; } publicStringgetLoginid(){ returnloginid; } publicvoidsetNewSex(String_newSex){ newSex=_newSex; } publicStringgetNewSex(){ returnnewSex; } publicvoidsetNewEmail(String_newEmail){ newEmail=_newEmail; } publicStringgetNewEmail(){ returnnewEmail; } publicvoidsetNewPhone(String_newPhone){ newPhone=_newPhone; } publicStringgetNewPhone(){ returnnewPhone; } publicvoidsetNewMessage(String_newMessage){ newMessage=_newMessage; } publicStringgetNewMessage(){ returnnewMessage; } publicvoidsetBacknews(String_backnews){ backnews=_backnews; } publicStringgetBacknews(){ returnbacknews; } publicvoidsetNewAge(int_newAge){ newAge=_newAge; } publicintgetNewAge(){ returnnewAge; }}6.2视图(JSP页面)本模块有3个JSP页面:isChange.jsp、showinfo.jsp、change_personalinfo.jsp。在进行个人信息修之前会员会选择是否修改个人信息,如果选择修改就进行change_personalinfo.jsp页面,该页面会把会员注册的信息显示出来并提供会员修改。showinfo.jsp显示会员修改之后的个人信息。isChange.jsp页面的效果图如图6-1所示:图6-1change_personalinfo.jsp的效果如图6-2所示:图6-2showinfo.jsp的效果如图6-3所示:图6-36.3控制器(Servlet)6.3.1查询注册信息的Servlet 该Servlet负责连接数据库,查询userinfo表格,把当前会员的个人信息转发到change_personalinfo.jsp页面。 Handlepersonal,javapackagemyservlet;importmybean.*;importjava.sql.*;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclasshandlepersonalextendsHttpServlet{ publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); try{ Class.forName("sun:jdbc:odbc:JdbcOdbcDriver"); } catch(Exceptione){} } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); booleanok=true; if(_login==null){ ok=false; response.sendRedirect("login.jsp"); } if(ok==true){ continueWork(request,response); } } publicvoidcontinueWork(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); Connectioncon=null; Stringloginid=_login.getLoginid(); register_register=newregister(); request.setAttribute("register",_register); try{ con=DriverManager.getConnection("jdbc:odbc:share","",""); Statementsql=con.createStatement(); ResultSetrs=sql.executeQuery("select*fromuserinfowhereloginid='"+loginid+"'"); if(rs.next()){ _register.setLoginid(rs.getString(1)); _register.setPassword(rs.getString(2)); _register.setSex(rs.getString(3)); _register.setAge(rs.getInt(4)); _register.setPhone(rs.getString(5)); _register.setEmail(rs.getString(6)); _register.setMessage(rs.getString(7)); _register.setPic(rs.getString(8)); _register.setBacknews("您注册的信息如下:"); } con.close(); } catch(SQLExceptione){ _register.setBacknews(""+e); } RequestDispatcherdispatcher=request.getRequestDispatcher("/change_personalinfo.jsp"); dispatcher.forward(request,response); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doPost(request,response); }}6.3.2修改注册信息的Servlet 该Servlet负责连接数据库,将会员修改之后的信息写入userinfo表中,并将会员的信息转发到受showInfo.jsp页面。changeInfo,javapackagemyservlet;importmybean.*;importjava.io.*;importjava.sql.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclasschangeInfoextendsHttpServlet{ publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); try{ Class.forName("sun:jdbc:odbc:JdbcOdbcDriver"); } catch(Exceptione){} } publicStringhandleString(Strings){ try{ bytebb[]=s.getBytes("iso-8859-1"); s=newString(bb); } catch(Exceptionee){} returns; } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); booleanok=true; if(_login==null){ ok=false; response.sendRedirect("login.jsp"); } if(ok==true){ continueDoPost(request,response); } } publicvoidcontinueDoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); Stringloginid=_login.getLoginid(); Connectioncon; PreparedStatementsql; newInfo_newInfo=newnewInfo(); request.setAttribute("newInfo",_newInfo); Stringsex=request.getParameter("newSex").trim(), email=request.getParameter("newEmail").trim(), phone=request.getParameter("newPhone").trim(), message=request.getParameter("newMessage"); intage=Integer.parseInt(request.getParameter("newAge").trim()); StringbackNews=""; try{ con=DriverManager.getConnection("jdbc:odbc:share","",""); StringupdateCondition="UPDATEuserinfoSETsex=?,age=?,telphonenumber=?,email=?,message=?WHEREloginid=?"; sql=con.prepareStatement(updateCondition); sql.setString(1,handleString(sex)); sql.setInt(2,age); sql.setString(3,phone); sql.setString(4,handleString(email)); sql.setString(5,handleString(message)); sql.setString(6,loginid); intm=sql.executeUpdate(); if(m==1){ backNews="修改信息成功"; _newInfo.setBacknews(backNews); _newInfo.setLoginid(handleString(loginid)); _newInfo.setNewSex(handleString(sex)); _newInfo.setNewAge(age); _newInfo.setNewEmail(handleString(email)); _newInfo.setNewPhone(phone); _newInfo.setNewMessage(handleString(message)); } else{ backNews="信息填写不完整或信息中有非法字符"; _newInfo.setBacknews(backNews); } con.close(); } catch(SQLExceptionexp){ backNews="数据库错误!"+exp; _newInfo.setBacknews(backNews); } RequestDispatcherdispatcher=request.getRequestDispatcher("/shownewInfo.jsp"); dispatcher.forward(request,response); } publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ doPost(request,response); }}7.上传照片 用户在注册成会员之后可以上传自己的照片,如果没上传照片,系统会提供一张默认的照片给该会员。7.1模型(Javabean) Upload.java用来描述会员上传的照片的信息。代码如下:packagemybean;publicclassUploadPic{StringfileName,savedFileName,backNews="";publicvoidsetFileName(Stringname){fileName=name;}publicStringgetFileName(){returnfileName;}publicvoidsetSavedFileName(Stringname){savedFileName=name;}publicStringgetSavedFileName(){returnsavedFileName;}publicStringgetBackNews(){returnbackNews;}publicvoidsetBackNews(Strings){backNews=s;}}7.2视图(JSP页面) 本模块有两个JSP页面,picupload.jsp提供用户上传照片,showUploadMess.jsp页面显示用户上传的照片信息。picupload.jsp的效果如图7-1所示:图7-1showUploadMess.jsp的效果如图7-2所示:图7-27.3控制器(Servlet) HandlePicUpload.java负责检查会员是否登录,连接数据库以及修改数据库中pic的字段。并且把会员上传的照片保存到Share\image中,保存的照片名字为会员的帐号加上照片的名字。具体代码如下:packagemyservlet;importmybean.*;importjava.sql.*;importjava.io.*;importjavax.servlet.*;importjavax.servlet.http.*;publicclassHandlePicUploadextendsHttpServlet{ publicvoidinit(ServletConfigconfig)throwsServletException{ super.init(config); try{ Class.forName("sun:jdbc:odbc:JdbcOdbcDriver"); } catch(Exceptione){} } publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=request.getSession(true); login_login=(login)session.getAttribute("login"); booleanok=true; if(_login==null){ ok=false; response.sendRedirect("login.jsp"); } if(ok==true){ Stringloginid=_login.getLoginid(); uploadFileMethod(request,response,loginid); } } publicvoiduploadFileMethod(HttpServletRequestrequest,HttpServletResponseresponse,Stringloginid)throwsServletException,IOException{ UploadPicupFile=newUploadPic(); StringbackNews=""; try{ HttpSessionsession=request.getSession(true); request.setAttribute("upFile",upFile); StringtempFileName=(String)session.getId(); Filef1=newFile(tempFileName); FileOutputStreamo=newFileOutputStream(f1); InputStreamin=request.getInputStream();byteb[]=newbyte[10000];intn;while((n=in.read(b))!=-1){ o.write(b,0,n); }o.close();in.close();RandomAccessFilerandom=newRandomAccessFile(f1,"r");intsecond=1;StringsecondLine=null;while(second<=2){ secondLine=random.readLine(); second++; }intposition=secondLine.lastIndexOf('\\');StringfileName=secondLine.substring(position+1,secondLine.length()-1);bytecc[]=fileName.getBytes("ISO-8859-1");fileName=newString(cc);fileName=fileName.replaceAll("","");StringsavedFileName=loginid.concat(fileName);random.seek(0);longforthEndPosition=0;intforth=1;while((n=random.readByte())!=-1&&(forth<=4)){ if(n=='\n'){ forthEndPosition=random.getFilePointer(); forth++; } }Filedir=newFile("D:\\Tomcat6.0\\webapps\\Share\\image");dir.mkdir();Filefile[]=dir.listFiles();for(intk=0;k<file.length;k++){ if(file[k].getName().startsWith(loginid)) file[k].delete();}FilesavingFile=newFile(dir,savedFileName);RandomAccessFilerandom2=newRandomAccessFile(savingFile,"rw");random.seek(random.length());

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论