A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 段光宇 中级黑马   /  2013-11-18 22:47  /  1350 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

目前,在大多数Browser/Server结构的WEB应用中,,在中间层上采用基于模型视图控制器(MVC.Model-View-Controller)的设计模式。Model层用来实现业务逻辑,View层用来显示用户界面,Controller层主要负责View层和Model层之间的控制关系,具体实现时,把Servlet用作应用程序的控制器,把JSP文档作为前台视图,JavaBeans被用来表示模型。
给一个实现注册功能的mvc具体例子:
View(视图层)Register.jsp

核心实现代码:
  1. </head>
  2. <body>
  3. <form name ="regform" action = "../UserRegServlet" method="post" onSubmit="return checkform();">
  4. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  5.   <tr>
  6. <td height="147" ><img src="../Resources/images/banner2.jpg" width="1410" height="200"></td>
  7.   </tr>
  8. </table>
  9. <table width="900" border="0" align="center" cellpadding="0" cellspacing="0" class="right-table03">
  10.   <tr>
  11.     <td width="221"><table width="95%" border="0" cellpadding="0" cellspacing="0" class="login-text01">
  12.       
  13.       <tr>
  14.         <td><table width="100%" border="0" cellpadding="0" cellspacing="0" class="login-text01">
  15.           <tr>
  16.             <td align="center"><img src="../Resources/images/ico.gif" width="107" height="97" /></td>
  17.           </tr>
  18.           <tr>
  19.             <td height="40" align="center"> </td>
  20.           </tr>
  21.          
  22.         </table></td>
  23.         <td><img src="../Resources/images/line1.gif" width="5" height="292" /></td>
  24.       </tr>
  25.     </table></td>
  26.     <td><table width="650" height="548">
  27.       <tr>
  28.         <td width="20%" height="35">用户名:<br /></td>
  29.         <td width="88%"><input name="textusername" id="inputusername" onblur="getBackInfo();" type="text" size="30" />
  30.         <font size='-1' color="red">*(用户名位数不得少于6位)</font> <input type="button" name="Button" value="检测用户" onClick="checkname('Checkusername.jsp')"></td>

  31.       </tr>
  32.       <tr>
  33.         <td height="35">密码:<br /></td>
  34.         <td><input name="textpassword" type="password" onpaste="return false"  oncontextmenu="return false"oncopy="return false" oncut="return false" size="32" />
  35.           <font color="red" size="-1"> *(密码位数不得少于6位)</font></td>
  36.       </tr>
  37.             <tr>
  38.         <td height="35">确认密码:<br /></td>
  39.         <td><input name="textconfirmpassword" type="password" onpaste="return false" oncontextmenu="return false" oncopy="return false" oncut="return false" size="32" /><font color="red" size="-1"> *(再次输入密码)</font></td>
  40.       </tr>
  41.             <tr>
  42.         <td height="35">密码保护问题:<br /></td>
  43.         <td height="35"><input name="textpasswordquestion" type="text" size="30" />
  44.           <font color="red" size="-1"> *(用于找回密码)</font></td>
  45.       </tr>
  46.            <tr>
  47.         <td height="35">密码保护答案:<br /></td>
  48.         <td height="35"><input name="textpasswordanswer" type="text" size="30" />
  49.           <font color="red" size="-1"> *</font></td>
  50. </tr>
  51.             <tr>
  52.         <td height="35">昵称:<br /></td>
  53.         <td><input name="textnickname" type="text" size="30" /><font color="red" size="-1"> *</font></td>
  54.       </tr>
  55.         <tr>  
  56.     <td height="35">性别:<br /></td>
  57.     <td><input type="radio" id="id1" name="textsex" value="男" checked>男 <img src="../Resources/images/boy.jpg" onclick="checked('id1')">
  58.       <input type="radio" id="id2" name="textsex" value="女">女 <img src="../Resources/images/girl.jpg" onclick="checked('id2')"> </td>
  59. </tr>
  60.       <tr>
  61.         <td height="35">学历:<br /></td>
  62.         <td>
  63.         <select name="textedu" style="width:210px;">
  64.         <option value="==请选择学历==">==请选择学历==</option>
  65.         <option value="博士">博士</option>
  66.         <option value="硕研以上">硕研以上</option>
  67.         <option value="大学本科">大学本科</option>
  68.         <option value="大学专科">大学专科</option>
  69.         <option value="中专">中专</option>
  70.         <option value="高中">高中</option>
  71.         <option value="职高">职高</option>
  72.         <option value="初中">初中</option>
  73.         <option value="小学">小学</option>
  74.         <option value="其他">其他</option>
  75.         </select>
  76.         <font color="red" size="-1"> *</font>
  77.         </td>
  78.       </tr>
  79.             <tr>
  80.         <td height="35">邮箱:<br /></td>
  81.         <td><input name="textemail" type="text" size="30" /><font color="red" size="-1"> *(按邮箱标准格式填写)</font></td>
  82.       </tr>
  83.         <tr>
  84.         <td height="35">验证码:<br /></td>
  85.         <td>
  86.         <input name="textcode" id="inputcode" type="text" size="18" />
  87.         <image name="yanzhengcode" border=0 src="../pages/Random.jsp" onclick="refresh();"/>
  88.         <a href="JavaScript:refresh();" style="text-decoration:none"><font color="red" size="-1">看不清楚换一张</font></a>
  89.         <%String str = (String)session.getAttribute("random"); %>
  90.         <%session.setAttribute("random", str); %>
  91.         </td>
  92.       </tr>
  93.             <tr>
  94.             <td height="20"> </td>
  95.                         <td><h5><input type="checkbox" name="agreement" id="agreement" />我已阅读并同意<a href="#" onClick="zOpen()">论坛服务协议</a></h5></td>
  96.       </tr>
  97.       <tr>
  98.         <td height="41"> </td>
  99.         <td><input type="submit"  value="提交注册" onclick="return checkagreement();"/>
  100.           <input type="reset" value="重 置" /></td>
  101.       </tr>
  102.             <tr>
  103.         <td height="72"> </td>
  104.         <td><p><font color="blue">已经有账户了?<a href="../pages/UserLogin.jsp">立即登录</a></font></p></td>
  105.       </tr>
  106.       
  107.     </table></td>
  108.   </tr>
  109. </table>
  110. </form>

复制代码
Controller层,即Servlet。实现代码:UserRegServlet.java
核心代码:
  1.         protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  2.                 request.setCharacterEncoding("GBK");
  3.                 response.setCharacterEncoding("GBK");
  4.                 HttpSession session = request.getSession();
  5.                 String str = (String)session.getAttribute("random");
  6.                 String yanzhnegcode=request.getParameter("textcode");
  7.                 String user_name=request.getParameter("textusername");
  8.                 String user_password=request.getParameter("textpassword");
  9.                 String user_password_question=request.getParameter("textpasswordquestion");
  10.                 String user_password_answer=request.getParameter("textpasswordanswer");
  11.                 String user_nickname=request.getParameter("textnickname");
  12.                 String user_sex=request.getParameter("textsex");
  13.                 String user_edu=request.getParameter("textedu");
  14.                 String user_email=request.getParameter("textemail");
  15.                 String user_regtime=getFormatedDateTime(dt);
  16.                 UserDataBean regdata=new UserDataBean();
  17.                 UserBean userreg=new UserBean();
  18.                 regdata.setUser_name(user_name);
  19.                 regdata.setUser_password(user_password);
  20.                 regdata.setUser_password_question(user_password_question);
  21.                 regdata.setUser_password_answer(user_password_answer);
  22.                 regdata.setUser_nickname(user_nickname);
  23.                 regdata.setUser_sex(user_sex);
  24.                 regdata.setUser_edu(user_edu);
  25.                 regdata.setUser_email(user_email);
  26.                 regdata.setUser_regtime(user_regtime);
  27.                 PrintWriter out = response.getWriter();
  28.                 if(yanzhnegcode.equals(str)){
  29.                 boolean result1=userreg.checkreg(regdata);
  30.                 if(result1==true){
  31.                         out.print("<script>window.location.href='register/RegFailed.jsp';</script>");
  32.                 }
  33.                 else
  34.                 {
  35.                         boolean result2=userreg.adduser(regdata);
  36.                         if(result2==true)
  37.                         {
  38.                                 out.print("<script>window.location.href='register/RegSuccess.jsp';</script>");
  39.                         }  
  40.                         else
  41.                         {
  42.                                 out.print("<script>window.location.href='register/RegFailed.jsp';</script>");
  43.                         }
  44.                 }
  45.                 }
  46.                 else{
  47.                         out.print("<script>alert('您的验证码输入错误!请重新输入!');window.location.href='javascript:history.go(-1);';</script>");
  48.                 }
  49.         }
  50. }
复制代码
Model层,即javabean,实现代码:UserBean.java
UserBean.java
  1.         public boolean adduser(UserDataBean regdata)
  2.         {
  3.                 ConDB db=new ConDB();
  4.                 String user_name=regdata.getUser_name();
  5. .................................
  6.                 String user_regtime=regdata.getUser_regtime();
  7.                 String sql="insert into bluerain_user(user_name,user_password,user_password_question,user_password_answer,user_nickname,user_sex,user_edu,user_email,user_phone,user_qq,user_regtime) values('"+user_name+"','"+user_password+"','"+user_password_question+"','"+user_password_answer+"','"+user_nickname+"','"+user_sex+"','"+user_edu+"','"+user_email+"','"+user_phone+"','"+user_qq+"','"+user_regtime+"')";
  8.                 return db.executeInsert(sql);
  9.         }
  10.         public boolean checkreg(UserDataBean regdata)
  11.         {
  12.                 boolean flag = false;
  13.                 ConDB db=new ConDB();
  14.                 String user_name=regdata.getUser_name();
  15.                 String user_nickname=regdata.getUser_nickname();
  16.                 String user_email=regdata.getUser_email();
  17.                 String sql="select * from bluerain_user where user_name='" + user_name + "' or user_nickname='" + user_nickname + "' or user_email='" + user_email + "'";
  18.                 flag = db.executeQuery1(sql);
  19.                 return flag;
  20.         }
  21.         public boolean checklogin(UserDataBean regdata)
  22.         {
  23.                 boolean flag = false;
  24.                 ConDB db=new ConDB();
  25.                 String user_name=regdata.getUser_name();
  26.                 String user_password=regdata.getUser_password();
  27.                 String sql="select * from bluerain_user where user_name='" + user_name + "' and user_password='" + user_password + "'";
  28.                 flag = db.executeQuery1(sql);
  29.                 return flag;
  30.         }

复制代码




评分

参与人数 1技术分 +1 收起 理由
黄炳期 + 1 学的已经很深入了~

查看全部评分

1 个回复

倒序浏览
由于论坛字数限制,3个代码并没有发表完整,只发了其中的核心代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马