亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

用MVC架構簡單的注冊、登錄例子

2019-11-18 12:44:16
字體:
來源:轉載
供稿:網友

  MVC的概念,大家都清楚吧,Model,View,Control
  首先我們看看這個目錄結構
  --+login
  ----------+WEB-INF
  -----------------------+classes
  -beans
               -tags
  -----------+tlds
  
  login 是主目錄放jsp文件,在例子login.jsp,loginFailed.jsp,login_form.jsp,newAccount.jsp,welcome.jsp,accountCreated.jsp
  
  Web-inf下面有web.xml配置文件,classes文件夾放類,tlds文件夾放自定義標簽
  由于我沒有用到數據庫,所以沒有用LIB文件夾,是來放置 *.jar 文件的。
  
  classes目錄下,有beans,tags文件夾,分別放置User,LoginDB類,和自定義標簽類GetRequestParameterTag,classes目錄下還直接放了LoginServlet,NewAccountServlet控制器類
  
  我們先看beans下的兩個業務對象類
  User.java
  package beans;
  
  public class User implements java.io.Serializable {
  PRivate final String userName, passWord, hint;
          //final強調此屬性初始化后,不能修改hint是口令提示
  public User(String userName, String password, String hint) {
    this.userName = userName;
    this.password = password;
    this.hint = hint;
  }
  public String getUserName(){
     return userName;
  }
  public String getPassword(){
     return password;
  }
  public String getHint(){
    return hint;
  }
  //判定當前對象用戶名和密碼是否相等
  public boolean equals(String uname, String upwd) {
  return getUserName().equals(uname) && getPassword().equals(upwd);
  }
  }
  
  LoginDB.java
  package beans;
  import java.util.Iterator;
  import java.util.Vector;
  public class LoginDB implements java.io.Serializable {
     private Vector users = new Vector();
    //Vector類是同步的,所以addUser就不需要同步了
    public void addUser(String name, String pwd, String hint) {
      users.add(new User(name, pwd, hint));
    }
    //下面方法判定是否存在正確的user
    public User getUser(String name,String pwd) {
      Iterator it = users.iterator();
      User user;
       //迭代需要同步
    synchronized(users) {
      while(it.hasNext()){
       user = (User)it.next();
       if(user.equals(name,pwd))
          return user; //假如返回真,就返回當前user
      }
     }
     return null;
     }
     public String getHint(String name) {
       Iterator it = users.iterator();
       User user;
     synchronized(users) {
       while(it.hasNext()){
       user = (User)it.next();
       if(user.getUserName().equals(name))
         return user.getHint();
       }
     }
    return null;
     }
  }
  
  login.jsp
  <Html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  <title>Login Page</title>
  </head>
  <body>
  <%@ include file="login_form.jsp" %>
  </body>
  </html>
  
  被包含的login_form.jsp
  <%@ taglib uri="utilities" prefix="util" %>
  <!--調用自定義標簽,引用為util,uri的utilities在web.xml映射了-->
  <p><font color="#6666CC">請登陸</font></p>
  <hr>
  <form name="form1" method="post" action="<%=response.encodeURL("login")%>"><!--login是LoginSevlet通過在web.xml映射了-->
   <table width="68%" border="0" cellpadding="2" cellspacing="2">
    <tr>
     <td width="33%" align="right">用戶名:</td>
     <td width="67%">
   <input type="text" name="userName" value="<util:requestParameter property='userName'/>"></td><!--注重這里用了自定義標簽,假如有值就顯示-->
    </tr>
    <tr>
     <td align="right">密碼:</td>
     <td><input type="text" name="userPwd" ></td>
    </tr>
    <tr align="center">
     <td colspan="2">
      <input type="submit" name="Submit" value="登陸">
     </td>
    </tr>
   </table>
  </form>
  
  LoginServlet.java
  import javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.IOException;
  
  import beans.User;
  import beans.LoginDB;
  
  public class LoginServlet extends HttpServlet {
    private LoginDB loginDB;
  
    public void init(ServletConfig config) throws ServletException {
  super.init(config);
  loginDB = new LoginDB();
  config.getServletContext().setAttribute("loginDB",loginDB);
  }
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
     String name = request.getParameter("userName"); //從login_form 表單得到值
     String pwd = request.getParameter("userPwd");
     User user = loginDB.getUser(name,pwd);
     if(user != null){ //說明存在用戶
     request.getsession().setAttribute("user",user);  //放到session 里面
     request.getRequestDispatcher(response.encodeURL("/welcome.jsp")).forward(request,response);    //成功轉發到welcome.jsp
     }else{
      request.getRequestDispatcher(response.encodeURL("/loginFailed.jsp")).forward(request, response);
     }
  }
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{
    doGet(request,response);
      }
  }
  
  web.xml添加
  <servlet>
  <servlet-name>Login</servlet-name>  <!--名字-->
  <servlet-class>LoginServlet</servlet-class>  <!--指定類-->
   </servlet><servlet>
  <servlet-name>new_account</servlet-name>
  <servlet-class>NewAccountServlet</servlet-class>
   </servlet>
    <servlet-mapping>
  <servlet-name>new_account</servlet-name>
  <url-pattern>/new_account</url-pattern>
   </servlet-mapping>
    <servlet-mapping>
  <servlet-name>Login</servlet-name>  <!--和上面的名字一致-->
  <url-pattern>/login</url-pattern>  <!--映射路徑-->
   </servlet-mapping>
  <taglib>
  <taglib-uri>utilities</taglib-uri>
  <taglib-location>/WEB-INF/tlds/utilities.tld</taglib-location>
            <!--自定義標簽的實際位置-->
  </taglib>
  
  utilities.tld要害部分
  <taglib>
  <tag>
  <name>requestParameter</name>
  <tagclass>tags.GetRequestParameterTag</tagclass>
  <!--類的位置,假如有包寫上-->
  <info>Simplest example: inserts one line of output</info>
  <bodycontent>Empty</bodycontent>
  <attribute>
  <name>property</name>
  <required>true</required>
  <rteXPrvalue>true</rtexprvalue>
  </attribute>
  </tag>
  </taglib>
  
  自定義標簽類GetRequestParameterTag.java
  package tags;
  
  import javax.servlet.ServletRequest;
  import javax.servlet.jsp.JspException;
  import javax.servlet.jsp.tagext.TagSupport;
  
  public class GetRequestParameterTag extends TagSupport {
      private String property;
  
     public void setProperty(String property){
        this.property = property;
     }
     public int doStartTag() throws JspException {
        ServletRequest reg = pageContext.getRequest();
        String value = reg.getParameter(property);
  
       try{
         pageContext.getOut().print(value == null ? "":va

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品一区专区欧美日韩| 久久精品国产久精国产一老狼| 久久久精品免费| www.日韩.com| 97香蕉久久夜色精品国产| 国产午夜精品久久久| 久久久免费精品视频| 精品丝袜一区二区三区| 久久久精品2019中文字幕神马| 国产伦精品一区二区三区精品视频| 高清视频欧美一级| 日韩精品视频免费专区在线播放| 亚洲国产高清自拍| 国产va免费精品高清在线观看| 91免费精品国偷自产在线| 久久精品国产一区二区三区| 久久久电影免费观看完整版| 欧美性高跟鞋xxxxhd| 亚洲欧洲在线观看| 国产区亚洲区欧美区| 北条麻妃在线一区二区| 国产精品自拍偷拍视频| 欧美在线一级va免费观看| 一区二区三区美女xx视频| 亚洲精品之草原avav久久| 国产精品mp4| 欧美日韩另类视频| 91精品久久久久久久久久| 综合网日日天干夜夜久久| 国产精品久久久久久久久久ktv| 国产欧美在线播放| 色悠悠久久88| 国产成人在线视频| 国产一区二区三区毛片| 欧美劲爆第一页| 亚洲一区二区日本| 久久久99久久精品女同性| 亚洲品质视频自拍网| 在线精品91av| 欧美日韩亚洲精品内裤| 午夜精品久久久久久久99黑人| 欧美理论电影在线播放| 成人中文字幕在线观看| 日韩一区二区三区xxxx| 国产精品69精品一区二区三区| 日韩亚洲欧美中文高清在线| 欧美极品少妇xxxxⅹ裸体艺术| 欧美激情免费看| 国产精自产拍久久久久久| 日韩a**站在线观看| 亚洲xxxx18| 亚洲精品一区二区在线| 亚洲在线第一页| 91产国在线观看动作片喷水| 国产精品a久久久久久| 91av免费观看91av精品在线| 国产精品欧美一区二区三区奶水| 久久久爽爽爽美女图片| 亚洲午夜女主播在线直播| 国产精品久久久久久久电影| 国产精品无av码在线观看| 久久综合国产精品台湾中文娱乐网| 亚洲第一精品夜夜躁人人躁| 日韩中文字幕久久| 日韩精品欧美激情| 国产丝袜一区二区三区免费视频| 日韩中文字幕在线观看| 日韩精品在线免费观看视频| 97在线观看视频国产| 91色p视频在线| 国产精品美女在线观看| 中文在线资源观看视频网站免费不卡| 不卡在线观看电视剧完整版| 国产精品扒开腿做爽爽爽男男| 欧美性猛交xxxx富婆弯腰| 久久久久在线观看| 国产日产久久高清欧美一区| 国产日韩欧美电影在线观看| 福利视频导航一区| 97在线精品视频| 亚洲日韩第一页| 久久精品电影一区二区| 欧美专区日韩视频| 日韩视频永久免费观看| 国产精品视频久久| 亚洲丁香婷深爱综合| 色哟哟网站入口亚洲精品| 亚洲美女视频网| 91香蕉嫩草神马影院在线观看| 欧美日韩午夜视频在线观看| 亚洲性夜色噜噜噜7777| 国产成人精品久久二区二区91| 欧美成人手机在线| 亚洲精品98久久久久久中文字幕| xx视频.9999.com| 久久久久久久久综合| 亚洲影影院av| 欧美精品18videos性欧| 久久免费精品视频| 91精品久久久久久久久久久| 日韩在线观看网站| 亚洲高清不卡av| 久久久久久久久久久人体| 51精品国产黑色丝袜高跟鞋| 欧美午夜美女看片| 国产99久久精品一区二区永久免费| 亚洲区在线播放| 一区二区欧美在线| 色狠狠av一区二区三区香蕉蜜桃| 国产日韩欧美电影在线观看| 国产精品视频地址| 亚洲免费人成在线视频观看| 97成人精品视频在线观看| 欧美午夜宅男影院在线观看| 午夜精品久久久久久久久久久久久| 亚洲一区精品电影| 中文字幕欧美精品日韩中文字幕| 久久久久久com| 国外成人在线播放| 日韩免费av片在线观看| 国产精品99久久99久久久二8| 亚洲影院高清在线| 亚洲自拍偷拍色片视频| 欧美视频免费在线| 国产精品88a∨| 国产精品久久久久久久9999| 中文字幕欧美精品在线| 国产91色在线免费| 欧美日韩国产123| 成人国产精品av| 国产精品亚洲аv天堂网| 亚洲精品福利免费在线观看| 久久精品亚洲一区| 日韩电影免费在线观看| 欧美一区第一页| 欧美第一黄色网| 欧美综合国产精品久久丁香| 亚洲区中文字幕| 久久久久久久久电影| 中文字幕久久久av一区| 欧美激情视频给我| 精品视频—区二区三区免费| 国产日本欧美在线观看| 情事1991在线| 欧美人在线视频| 国产日本欧美一区二区三区| 欧美激情久久久久久| 成人免费网站在线看| 国产精品h在线观看| 97在线视频免费| 成人精品久久久| 亚洲欧美在线磁力| 人九九综合九九宗合| 精品中文字幕久久久久久| 国产视频精品va久久久久久| 69久久夜色精品国产69| 日韩欧美国产骚| 91久久精品国产91久久| 欧美成人午夜免费视在线看片| 欧美日韩中文字幕在线| 全色精品综合影院| 国产精品久久久久久久久久ktv| 国产一区二区久久精品| 日韩成人在线观看|