<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    編程之道

    無論是批評的,贊揚的,指著的都請EMAIL給我,你的建議將是我前進的動力! 聯系我

    開發JSP&Servlet

          終于有空可以閑下來了,前2個星期忙著寫代碼。在開發過程中,因為不懂的東西太多,所以這段時間在不停的惡補,忙的連看美女的時間都沒。就 趁著今天夜黑風高之際,我就繼續寫點把。

          介紹下我的開發工具是:eclipse3.1+myeclipse4.0GA   開發平臺:win2000
         ( myeclipse4.0有個功能很不錯,支持所見即所得,就是速度慢)

          基本概念不說了,過下書就算了。我就用個用戶登錄的例子來說明如果使用JSP+SERVLET+JAVABEAN來開發項目,這個例子是通過讀取XML文件來驗證是否是合法用戶。
          先說一下流程:本來想畫流程圖的,但是機器里還沒裝VISIO。。。以后在補把。其實也很簡單的。
          這里是源碼,需要的朋友可以下載看看http://www.tkk7.com/Files/yuanhuaming/mvctest.rar
    可能web.xml需要改一下,把還沒修改好的傳上去了。


    Login.jsp   
     
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <html>
      
    <head>  
    <SCRIPT language="JavaScript">
    function clean() {
        form1.passWord.value 
    = "";
        form1.userName.value 
    = "";    
    }

    </SCRIPT>
      
    </head>
      
    <body>
      
    <FORM name="form1" action="Login.do" method="post" >    
           username: 
    <INPUT name="userName" type="text"><P></P>
        password: 
    <INPUT type="password" name="passWord"><P></P><P>
        
    <INPUT type="submit" name="submit" value="submit">
       
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        
    <INPUT type="Button" name="reset" value="reset" onclick="clean()">
        
    </P><P></P></FORM>
      
    </body>
    </html>
    通過action定向到Login.do, Login.do就是通過web.xml映射到指定的servlet。請看:
      <servlet>
        
    <servlet-name>Login</servlet-name>//3
        
    <servlet-class>com.yhm.servlet.Login</servlet-class>//4
      
    </servlet>

      
    <servlet-mapping>
        
    <servlet-name>Login</servlet-name>//2
        
    <url-pattern>/Login.do</url-pattern>//1
      
    </servlet-mapping>
    上面標志的數字就是依次查找的順序,很容易理解把。

    Login.java
    package com.yhm.servlet;

    import java.io.IOException;
    import java.io.PrintWriter;

    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import com.yhm.bean.testConfig;

    public class Login extends HttpServlet {
        
        
    public void doPost(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {
            String username 
    = new String(request.getParameter("userName").getBytes("iso8859-1"),"utf-8");
            String password 
    = new String(request.getParameter("passWord").getBytes("iso8859-1"),"utf-8");
            
            testConfig config 
    = new testConfig();
            
    //.vaildate() return boolean
            if(config.Vaildate(username, password) == true{            
                
    /*通?SESSION?量?參 
                HttpSession session = request.getSession();
                session.setAttribute("userName", username);
                response.sendRedirect("welcome.jsp");    
                
    */

                
    //request?參
                request.setAttribute("username", username);
                   //定向
                RequestDispatcher dispatcher 
    = request.getRequestDispatcher("welcome.jsp");            
                dispatcher.forward(request, response);
            }

            
    else {
                response.sendRedirect(
    "error.jsp");
            }

        }


        
    //init and destroy
        public void init() throws ServletException {}
        
    public void destroy() {
            
    super.destroy();
        }

    }

    主要負責獲取表單內的參數值,并且轉向到指定的頁面。


    ComJDom.java   用于封裝如何訪問XML
    需要導入一個jdom.jar包,SDK里也有類似解析XML的包不過不太好用。
    package com.yhm.bean;

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;

    import org.jdom.Document;
    import org.jdom.input.SAXBuilder;


    public class ComJDom {
        
    public static Document getDocument(String XMLUser) throws Exception {
            Document dom 
    = null;
            InputStream instr 
    = null;
            
    try {
                SAXBuilder build 
    = new SAXBuilder();
                instr 
    = new FileInputStream(XMLUser);
                dom 
    = build.build(instr);
            }

            
    finally {
                   
    if (instr != null{
                        
    try {
                            instr.close();
                        }
     
                        
    catch (IOException ex) {
                            
    throw ex;
                        }

                    }

            }

            
    return dom;
        }

    }


    testConfig.java   用來驗證用戶名是否正確
    package com.yhm.bean;

    import java.util.ArrayList;
    import java.util.List;

    import org.jdom.Document;
    import org.jdom.Element;

    public class testConfig {
        
        
    private List userList = null;
        
    private List pwdList = null;
        
        
    public boolean Vaildate(String userName, String pwd) {
            
    //驗證用戶名密碼是否正確
            for(int i=0;i<userList.size();i++){
                
    if(userList.get(i).equals(userName) && pwdList.get(i).equals(pwd)){
                    
    return true;
                }
            
            }
     return false;            
        }
        
        
        
    public testConfig() {
            
    try {
                userList 
    = new ArrayList();
                pwdList 
    = new ArrayList();
                String xmlStr 
    = "F:/project by eclipse/mvctest/WEB-INF/test.xml";
                Document dom 
    = ComJDom.getDocument(xmlStr);
                
    //得到根元素返回元素類型
                Element root = dom.getRootElement();
                
    //得到根元素的下一級元素
                List list = root.getChildren();
                Element action 
    = null;
                
    for (int i = 0; i < list.size(); i++{
                    action 
    = (Element) list.get(i);
                    
    //得到username元素里的內容
                    String username = action.getChildText("username");
                    String password 
    = action.getChildText("password");
                    
    //放入2個List表中
                    userList.add(username);                
                    pwdList.add(password);
                }
                
            }

            
    catch(Exception ex) {
                ex.printStackTrace();
            }

        }
        
    }



    test.xml    記錄了合法的用戶名密碼
    <?xml version="1.0" encoding="UTF-8"?>
    <userList>
        
    <user>
            
    <username>admin</username>
            
    <password>admin</password>
        
    </user>    
        
    <user>
            
    <username>test</username>
            
    <password>test</password>
        
    </user>    
        
    <user>
            
    <username>tiger</username>
            
    <password>tiger</password>
        
    </user>    
    </userList>

    還有一張error.jsp ,有錯誤就會跳轉到這里來。
     

       總結:盡量不要把代碼寫在jsp里,盡量不要使用DW畫界面,會出來很多垃圾代碼,后期修改的時候看起來也累。通過這個例子,我似乎漸漸了解了為什么那么多的框架使用XML做配置文件及其如何工作的。
    實際開發項目的時候會碰到很多很多奇怪而且難以捉摸的問題,可能這就是為什么要加班了。我前1個星期就碰到一個很奇怪的頁面問題。本來顯示正常,然后加了一個完全不相關的JSP文件,結果頁面排版就出問題。然后COPY一下在其他機器上運行一切正常。郁悶了2天.....結果無意裝了新版本的tomcat,把老版本卸了。然后一運行,正常Y_Y,誰會想到是tomcat的問題,而且tomcat也沒報什么錯。

    posted on 2005-09-18 11:17 瘋流成性 閱讀(481) 評論(0)  編輯  收藏 所屬分類: eclipse


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 永久免费av无码网站大全| 国产大片免费天天看| 99久久久国产精品免费蜜臀| 亚洲一区二区视频在线观看| 欧亚一级毛片免费看| 亚洲高清最新av网站| 国产免费久久久久久无码| 亚洲无码视频在线| 中文字幕无线码中文字幕免费 | 中文字幕在线成人免费看| 亚洲午夜精品一级在线播放放| 一出一进一爽一粗一大视频免费的| 免费观看亚洲人成网站| 无遮挡呻吟娇喘视频免费播放| 亚洲国产成人a精品不卡在线| fc2免费人成为视频| 亚洲乱码日产一区三区| 久久国产高潮流白浆免费观看| 亚洲国产精品张柏芝在线观看 | 91高清免费国产自产拍2021| 亚洲欧洲日本精品| 青青青国产免费一夜七次郎 | 亚洲精品无码av中文字幕| 破了亲妺妺的处免费视频国产| 精品国产日韩亚洲一区在线| 中文字幕中韩乱码亚洲大片 | 亚洲中文字幕无码中文| 吃奶摸下高潮60分钟免费视频| a视频免费在线观看| 亚洲视频网站在线观看| 在线日韩av永久免费观看| 一级黄色免费网站| 亚洲福利视频网址| 日韩特黄特色大片免费视频| 黄色网页在线免费观看| 亚洲自偷自拍另类图片二区| 亚洲国产成人VA在线观看| 亚洲综合免费视频| 丁香六月婷婷精品免费观看| 亚洲国产精品线观看不卡| 国产精品亚洲二区在线观看|