【DRP】-servlet 请求传值

来源:互联网 发布:程序员工作累吗? 编辑:程序博客网 时间:2024/06/05 23:44

AJAX请求servlet ,动态验证分销商代码是否存在!

分销商文本框代码:

 <input name="clientId" type="text" class="text1" id="clientId"        size="10" maxlength="10" onblur="validateClientId(this)"> <span id="spanClientId"></span>


创建jsp页面是可以使用模板:普通和高级。如果使用高级模板,会自动创建一下代码:

<%    String path = request.getContextPath();    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%>

html 代码<head>标签中会多出一行代码:

<base href="<%=basePath %>">


这行代码的作用是:把当前页面作为根页面(http://localhost:8080/drp3.1/),请求URL请求时资源是,直接写请求的页面就行无需在去..了!

例如下面的url请求就是直接写的资源路径。这样给开发带来很多方便。

validateClientID方法:

<script type="text/javascript">            function validateClientId(field) {                if (trim(field.value) != "") {                    var xmlHttp = null;                    //表示当前浏览器不是ie,如ns,firefox                    if(window.XMLHttpRequest) {                        xmlHttp = new XMLHttpRequest();                    } else if (window.ActiveXObject) {                        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");                    }                    var url = "servlet/ClientIdValidateServlet?clientId=" + trim(field.value);                    xmlHttp.open("GET", url, true);                    xmlHttp.onreadystatechange=function() {                        if (xmlHttp.readyState == 4) {                            if (xmlHttp.status == 200) {                                if (trim(xmlHttp.responseText) != "") {                                    document.getElementById("spanClientId").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>"                                 }else {                                    document.getElementById("spanClientId").innerHTML = "";                                }                            }else {                                alert("请求失败,错误码=【" + xmlHttp.status + "】");                            }                        }                    };                    xmlHttp.send(null);                }else {                    document.getElementById("spanClientId").innerHTML = "";                }            }        </script>

通过配置文件寻找servlet 

<servlet>        <servlet-name>ClientIdValidateServlet</servlet-name>        <servlet-class>com.bjpowernode.drp.util.servlet.ClientIdValidateServlet</servlet-class>        <load-on-startup>5</load-on-startup>    </servlet>        <servlet-mapping>        <servlet-name>ClientIdValidateServlet</servlet-name>        <url-pattern>/servlet/ClientIdValidateServlet</url-pattern>    </servlet-mapping>

servelt请求创建的时期,默认是小于0的,如果是小于0在请求url时创建。如果如果大于0则是tomact启动时创建 。servlet只创建一次!

servlet请求代码:

package com.bjpowernode.drp.util.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.bjpowernode.drp.basedata.manager.ClientManager;/** * 验证分销商代码是否存在 * @author Administrator * */public class ClientIdValidateServlet extends HttpServlet {    @Override    public void init() throws ServletException {        System.out.println("------------ClientIdValidateServlet.init()------------");    }    @Override    protected void service(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        response.setContentType("text/html;charset=GB18030");        String clientId = request.getParameter("clientId");        boolean flag = ClientManager.getInstance().findClientByClientId(clientId);        if (flag) {            response.getWriter().print("分销商代码已经存在");        }    }    }


后台D层方法方法:

/**     * 根据分销商代码查询     * @param clientId     * @return 存在返回true,否则返回false     */    public boolean findClientByClientId(String clientId) {        String sql = "select count(*) from t_client where client_id=?";        Connection conn = null;        PreparedStatement pstmt = null;        ResultSet rs = null;        boolean flag = false;        try {            conn = DbUtil.getConnection();            pstmt = conn.prepareStatement(sql);            pstmt.setString(1, clientId);            rs = pstmt.executeQuery();            rs.next();            return rs.getInt(1) > 0 ? true : false;        }catch(SQLException e) {            e.printStackTrace();        }finally {            DbUtil.close(rs);            DbUtil.close(pstmt);            DbUtil.close(conn);        }        return flag;    }


一篇关于没有用servlet 的AJAX请求博客:

输出提示的方式比较:

一篇关于没有用servlet 的AJAX请求博客:

【DRP】AJAX异步判断用户是否存在

输出提示的方式比较:

response.getWriter().write()与out.print()的区别

编程小技巧:

  使用jsp高级模板,无需因为资源的路径而烦恼!

总结:不断提高自己的编码效率!



1 0
原创粉丝点击