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

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

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

    編程之道

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

    開發(fā)JSP&Servlet

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

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

          基本概念不說了,過下書就算了。我就用個用戶登錄的例子來說明如果使用JSP+SERVLET+JAVABEAN來開發(fā)項目,這個例子是通過讀取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>
    上面標(biāo)志的數(shù)字就是依次查找的順序,很容易理解把。

    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();
        }

    }

    主要負(fù)責(zé)獲取表單內(nèi)的參數(shù)值,并且轉(zhuǎn)向到指定的頁面。


    ComJDom.java   用于封裝如何訪問XML
    需要導(dǎo)入一個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元素里的內(nèi)容
                    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 ,有錯誤就會跳轉(zhuǎn)到這里來。
     

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

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 久香草视频在线观看免费| 亚洲视频在线观看网站| 免费乱理伦在线播放| 最近中文字幕免费mv视频8| 成人免费的性色视频| 欧洲一级毛片免费| 毛片免费vip会员在线看| 大地资源二在线观看免费高清 | 亚洲一卡2卡3卡4卡乱码 在线 | 亚洲成色在线综合网站| 久久亚洲高清观看| 亚洲男人的天堂在线播放| 久久精品亚洲综合专区| 老色鬼久久亚洲AV综合| 亚洲午夜精品在线| 成人区精品一区二区不卡亚洲| 亚洲成在人线aⅴ免费毛片| 亚洲国产综合AV在线观看| 国产午夜亚洲精品不卡电影| 污视频网站免费观看| 国产在线精品一区免费香蕉| 国产色爽免费无码视频| 久久99国产乱子伦精品免费| 很黄很色很刺激的视频免费| 午夜两性色视频免费网站| 免费又黄又爽的视频| 亚洲欧洲日产国码无码久久99| 亚洲AV日韩AV天堂一区二区三区 | 国产亚洲av片在线观看16女人| 久久91亚洲精品中文字幕| 亚洲最新黄色网址| 亚洲成AV人片高潮喷水| 一级女人18片毛片免费视频| 久久久久成人片免费观看蜜芽| 免费毛片a在线观看67194| 免费在线观看日韩| 亚洲AV无码欧洲AV无码网站| 亚洲综合偷自成人网第页色| gogo免费在线观看| 日本黄网站动漫视频免费| 国产99视频精品免费视频7|