海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020javaweb框架教程之maven生命周期

未分类
2020-11-28 10:19:46
1822677238@qq.com

2020javaweb框架教程之maven生命周期

依赖生命周期

<dependency>
  <!-- jstl 支持 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope><!-- 生命周期 -->
</dependency>

maven生命周期如下

compile:默认值,适⽤于所有阶段(测试,编译,运⾏,打包),会随着项⽬⼀起发布(被打包)

provided:类似compile,期望JDK、容器或使⽤者会提供这个依赖。如servlet.jar,参与测试,编译,不会被打包

runtime:只在运⾏时使⽤,如 jdbc6.jar,适⽤运⾏和测试阶段,会被⼀起发布

test:只在测试时使⽤,⽤于编译和运⾏测试代码,如 junit.jar,不会随项⽬发布

system:类似provided,但Maven不会在Repository中查找它,要在本地磁盘⽬录中查找,参与编译,测试,打包,运⾏。

2020javaweb框架教程之idea配置maven以及配置Tomcat

未分类
2020-11-28 10:08:21
1822677238@qq.com

2020javaweb框架教程之idea配置maven以及配置Tomcat

idea配置maven

选择骨架

创建maven项目,选择骨架


项目结构

java项目:
1.src/main/java 存放源代码,建包,放项⽬中代码(service,dao,User,….)
2.src/main/resources 书写配置⽂件,项⽬中的配置⽂件(jdbc.properties)
3.src/test/java 书写测试代码,项⽬中测试案例代码
4.src/test/resources 书写测试案例相关配置⽂件
5.项⽬根/pom.xml (project object model) maven项⽬核⼼⽂件,其中定义项⽬构建⽅式,声明依赖等
注意:项⽬中的建包,建类,执⾏,都和普通项⽬⽆差异

导入依赖jar

建好项⽬后,需要导⼊需要的jar,要通过【坐标】
1. 每个构件都有⾃⼰的坐标(标识) = groupId + artifactId + version = 项⽬标识 + 项⽬名 + 版本
2. 在maven项⽬中只需要配置坐标,maven便会⾃动加载对应依赖。删除坐标则会移除依赖
3. jar包并不会导⼊到项⽬⽬录中,只是maven帮助做了关联。但在打包部署项⽬时会携带对应依赖
4. ⽽且,如果导⼊了依赖A,⽽A中⼜依赖了B,则B会被⾃动加载。

查找依赖

依赖查找服务:https://mvnrepository.com/ ,获得依赖的坐标,在maven项⽬中导⼊。

导入依赖

在项目的pom文件中:

<dependency>
  <!-- jstl 支持 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency><!-- 通过坐标导入依赖 -->

同步依赖

创建javaweb项目导入依赖

<dependency>
  <!-- jstl 支持 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jstl</artifactId>
  <version>1.2</version>
  <scope>compile</scope>
</dependency>
<dependency>
  <!-- servlet编译环境 -->
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <!-- jsp编译环境 -->
  <groupId>javax.servlet</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.0</version>
  <scope>provided</scope>
</dependency>

配置Tomcat





2020javaweb框架之maven概述和仓库了解以及骨架定制

未分类
2020-11-28 10:05:58
1822677238@qq.com

2020javaweb框架之maven概述和仓库了解以及骨架定制

什么是maven?

Maven是⼀个基于项⽬对象模型(POM)的概念的纯java开发的开源的项⽬管理⼯具。

maven下载

http://maven.apache.org/download.cgi

maven安装:

解压后放在纯英文目录下

maven目录结构

bin:含有mvn运行的脚本
boot:含有plexus-classworlds类加载器框架,Maven 使⽤该框架加载⾃⼰的类库
conf:含有settings.xml配置⽂件
lib:含有Maven运⾏时所需要的java类库
(更多…)

2020javaweb教程之利用jQueryAjax增删改查

未分类
2020-11-23 19:05:47
1822677238@qq.com

2020javaweb教程之利用jQueryAjax查询数据和删除数据

查询所有:

html:

<a href="add.jsp">添加用户</a>
<div id="div1">
    <table>
        <tbody id="a">
        <tr>
            <th>编号</th>
            <th>用户名</th>
            <th>密码</th>
            <th>权限</th>
            <th>操作</th>
        </tr>
        </tbody>
        <tbody id="b"></tbody>
    </table>
</div>
<button onclick="gets()">获取最新</button>

script:

<script>
    var count=0;
    function gets(){
        var xhr=new XMLHttpRequest();
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                var objs=JSON.parse(xhr.responseText);
                if(xhr.responseText=="bad"){
                    alert("查询失败");
                }else{
                    var b=document.getElementById("b");
                    var tr=document.createElement("tr");
                    for(var i=0;i<objs.length;i++){
                        count++;
                        if(count<=objs.length){
                            tr=document.createElement("tr");
                            var tdid=document.createElement("td");
                            var tdname=document.createElement("td");
                            var tdpwd=document.createElement("td");
                            var tdacc=document.createElement("td");
                            var tddel=document.createElement("td");
                            tdid.innerText=objs[i].id;
                            tr.append(tdid);
                            tdname.innerText=objs[i].username;
                            tr.append(tdname);
                            tdpwd.innerText=objs[i].password;
                            tr.append(tdpwd);
                            tdacc.innerText=objs[i].access;
                            tr.append(tdacc);
                            var s="id="+objs[i].id+"&username="+objs[i].username+"&password="+objs[i].password;
                            tddel.innerHTML="<a href='update.html?"+s+"'>修改</a>" +
                                "<a href='javascript:void(0)' onclick='dels(this,"+objs[i].id+")'>删除</a>";
                            tr.append(tddel);
                            b.append(tr);
                        }else{
                            tr.remove();
                        }
                    }
                }
            }
        }
        xhr.open("get","/test/getAll");
        xhr.send();
    }
    /*function del(tr,id){//jQueryAjax方法
        var result=confirm("确定要删除吗?操作不可逆");
        $.post("/test/del","id="+id,function (data) {
            if(result==true){
                if(data=="1"){
                    alert("删除成功");
                    tr.parent().parent().remove();
                    location.href="getAll.html";
                }else alert("删除失败");
            }
        })

    }*/
    function dels(tr,id){
        var xhr=new XMLHttpRequest();
        var result=confirm("确定要删除吗?操作不可逆");
        xhr.onreadystatechange=function(data){
            if(xhr.readyState==4&&xhr.status==200){
                if(result==true){
                    if(xhr.responseText=="1"){
                        alert("删除成功");
                        var fa=tr.parentNode.parentNode;
                        fa.remove();
                    }else alert("删除失败");
                }
            }
        }
        xhr.open("post","/test/del");
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xhr.send("id="+id);
    }
</script>

查询所有的servlet

PrintWriter writer = response.getWriter();
UsersService us=new UsersServiceImpl();
List<Users> all = us.getAll();
Object o = JSON.toJSON(all);
if(o!=null) writer.print(o);
else writer.print("bad");

删除的servlet

String id = request.getParameter("id");
PrintWriter writer = response.getWriter();
UsersService us=new UsersServiceImpl();
int delete = us.delete(Integer.parseInt(id));
if(delete>0) writer.print("1");
else writer.print("0");

修改的html

<form method="post">
    id : <input type="text" readonly value="" name="id" id="id"><br>
    username : <input type="text" name="username" value="" id="username"><br>
    password : <input type="text" name="password" value="" id="password">
</form>
<button onclick="changes()">修改</button>

修改的script

<script>
    $(function () {
        var search = location.search.substring(1);
        var str=search.split("&");
        $.each(str,function(i){
            var v1=str[i].split("=");
            $("#"+v1[0]).val(v1[1]);
        })
    })
    function changes() {
        var id=$("#id").val();
        var username=$("#username").val();
        var password=$("#password").val();
        var userinfo={"id":id,"username":username,"password":password};
        var s=JSON.stringify(userinfo);
        $.post("/test/update","userinfo="+s,function (data) {
            if(data=="1"){
                alert("修改成功");
                location.href="getAll.html";
            }else alert("修改失败");
        })
    }
</script>
</body>

修改的servlet

String userinfo = request.getParameter("userinfo");
UsersService us=new UsersServiceImpl();
int update = us.update(userinfo);
PrintWriter writer = response.getWriter();
if(update>0) writer.print("1");
else writer.print("0");

添加数据

<body>
<%
    UsersService us=new UsersServiceImpl();
    int id = us.getAllID();
    request.setAttribute("id",id);
%>
<form method="post">
    id : <input type="text" readonly value="${id+1}" name="id" id="id"><br>
    username : <input type="text" name="username" id="username"><br>
    password : <input type="text" name="password" id="password">
</form>
<button onclick="adds()">添加用户</button>
<script>
    function adds() {
        var id=$("#id").val();
        var username=$("#username").val();
        var password=$("#password").val();
        var str={"id":id,"username":username,"password":password};
        var s=JSON.stringify(str);
        $.post("/test/add","userinfo="+s,function (data) {
            if(data=="1"){
                alert("添加成功");
                location.href="getAll.html";
            }else alert("添加失败");
        })
    }
</script>
</body>

添加的servlet

String userinfo = request.getParameter("userinfo");
UsersService us=new UsersServiceImpl();
int add = us.add(userinfo);
PrintWriter writer = response.getWriter();
if(add>0) writer.print("1");
else writer.print("0");




2020javaweb教程之利用原生Ajax进行查询与删除

未分类
2020-11-23 17:14:22
1822677238@qq.com

2020javaweb教程之利用jQueryAjax进行查询与删除

<div id="div1">
    <table>
        <tbody id="a">
        <tr>
            <th>编号</th>
            <th>用户名</th>
            <th>密码</th>
            <th>权限</th>
            <th>操作</th>
        </tr>
        </tbody>
        <tbody id="b"></tbody>
    </table>
</div>
<button onclick="gets()">获取</button>
<script>
    //原生Ajax实现json查询
    function gets(){
        var xhr=new XMLHttpRequest();
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                if(xhr.responseText=="error"){
                    alert("查询失败")
                }else{
                    //清空内容
                    $("#b").empty();
                    var objs=JSON.parse(xhr.responseText);
                    $.each(objs,function(i){
                        //创建标签
                        var tr=document.createElement("tr");
                        var tdid=document.createElement("td");
                        var tdname=document.createElement("td");
                        var tdpw=document.createElement("td");
                        var tdac=document.createElement("td");
                        tdid.innerText=objs[i].id;
                        tr.append(tdid);//tr追加td
                        tdname.innerText=objs[i].username;
                        tr.append(tdname);
                        tdpw.innerText=objs[i].password;
                        tr.append(tdpw);
                        tdac.innerText=objs[i].access;
                        tr.append(tdac);

                        //创建删除的 td标签
                        var tddel=document.createElement("td");
                        //添加内容
                        tddel.innerHTML="<a href='javascript:void(0);'" +
                            " onclick='del(this,"+objs[i].id+")'>删除</a>";
                        //追加
                        tr.append(tddel);

                        $("#b").append(tr);//tbody追加tr
                    })
                }
            }
        }
        xhr.open("get","/day23/getAll");
        xhr.send();
    }
    function del(tr,id){//原生Ajax的 post 方法
        var xhr=new XMLHttpRequest();
        var result=confirm("确定删除吗?操作不可逆");
        xhr.onreadystatechange=function(){
            if(xhr.readyState==4&&xhr.status==200){
                if(result==true){
                    var v=xhr.responseText;
                    if(v=="ok"){
                        alert("删除成功");
                        var fa=$(tr).parent().parent();
                        fa.remove();
                    }else alert("删除失败")
                }
            }
        }
        xhr.open("post","/day23/delete");
        xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
        xhr.send("id="+id);
    }
</script>



2020javaweb教程之ajax方法

未分类
2020-11-23 15:13:34
1822677238@qq.com

2020javaweb教程之ajax方法

常用参数:

contentType:(默认: “application/x-www-form-urlencoded”) 发送信息至服务器时内容编码类型。默认值适合大多数情况。

data:发送到服务器的数据

dataType:预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断。

“xml”: 返回 XML 文档,可用 jQuery 处理。

“html”: 返回纯文本 HTML 信息;包含的script标签会在插入dom时执行。

“script”: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了”cache”参数。”’注意:”’在远程请求时(不在同一个域下),所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)

“json”: 返回 JSON 数据 。 (更多…)

2020javaweb教程之jQuery全选、反选、全不选

未分类
2020-11-21 16:36:20
1822677238@qq.com

2020javaweb教程之jQuery全选、反选、全不选

<table>
    <tr>
        <td><input type="checkbox" id="allbox">全选</td>
        <td><input type="checkbox" id="allnobox">全不选</td>
        <td><input type="checkbox" id="fanbox">反选</td>
    </tr>
    <tr>
        <td><input type="checkbox" class="box"></td>
        <td></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="box"></td>
        <td></td>
    </tr>
    <tr>
        <td><input type="checkbox" class="box"></td>
        <td></td>
    </tr>
</table>
<script>
    $(function(){
        var allbox=$("#allbox");//获取全选
        var boxs=$(".box");//获取所有复选框
        //反选
        var fx=$("#fanbox");
        fx.click(function(){
            for(var i=0;i<boxs.length;i++){
                var r=$(boxs[i]).prop("checked");
                if(r==true){
                    $(boxs[i]).prop("checked",false)
                }else $(boxs[i]).prop("checked",true)
            }
        })
        //全选
        allbox.click(function(){
            var result=$(this).prop("checked");
            if(result==true){
                boxs.prop("checked",true);
            }else boxs.prop("checked",false);
        })
        //全不选
        var allnobox=$("#allnobox");
        allnobox.click(function(){
            var lists=$("input[type='checkbox']");
            for(var i=0;i<lists.length;i++){
                var r=$(lists[i]).prop("checked");
                if(r==true) {
                    $(lists[i]).prop("checked",false)
                }
            }
        })
        //反向全选 2.利用 each迭代
        boxs.click(function(){
            var c=0;
            $.each(boxs,function(i,v){
                if($(boxs[i]).prop("checked")==true){
                    c++;
                    if(c==boxs.length){
                        allbox.prop("checked",true);
                    } 
                    else allbox.prop("checked",false);
                }
            })
        })
        //反向全选 1.利用for循环
        boxs.click(function(){
            var c=0;//计数器
            for(var i=0;i<boxs.length;i++){
                //如果多个复选框都为true
                var r=$(boxs[i]).prop("checked");
                if(r==true){
                    c++;//计数器++
                    //如果计数器等于多个复选框,将全选框设置true
                    if(c==boxs.length) {
                        allbox.prop("checked",true);
                    }
                    //否则全选为false
                    else allbox.prop("checked",false);
                }
            }
        })
    })
</script>





2020javaweb教程之jQuery移动

未分类
2020-11-21 16:30:43
1822677238@qq.com

2020javaweb教程之jQuery移动

<style>
    select{width: 200px;height: 100px;}
</style>
<select name="" id="s1" size="10">
    <option value="1">北京</option>
    <option value="2">天津</option>
    <option value="3">上海</option>
    <option value="4">重庆</option>
    <option value="5">石家庄</option>
</select>
<button id="btn1">右移>></button>
<button id="btn2">全部右移</button>
<button id="btn3">左移<<</button>
<button id="btn4">全部左移</button>
<select name="" id="s2" size="10">
</select>
<script>
    $(function(){
        var s1=document.getElementById("s1");
        var s2=document.getElementById("s2");
        $("button:first").click(function(){
            $("#s2").append(s1.options[s1.selectedIndex]);
        })
        $("button:eq(2)").click(function(){
            $("#s1").append(s2.options[s2.selectedIndex]);
        })
        $("button:eq(1)").click(function(){
            $("#s2").append(s1.options);
        })
        $("button:eq(3)").click(function(){
            $("#s1").append(s2.options);
        })
    })
</script>



2020javaweb教程之jQuery省市级联

未分类
2020-11-21 16:27:03
1822677238@qq.com

2020javaweb教程之jQuery省市级联

<select name="" id="a">
    <option value="0">请选择</option>
</select>
<select name="" id="b">
    <option value="0">请选择</option>
</select>
<script>
    $(function(){
        var arr=new Array();
        arr["河北省"]=["保定","石家庄","张家口"];
        arr["四川省"]=["成都","绵阳","乐山"];
        arr["山东省"]=["济南","青岛","烟台","泰安"];
        for(var key in arr){
            $("#a").append("<option value='"+key+"'>"+key+"</option>")
        }
        $("#a").change(function(){
            $("#b").empty();
            $("#b").append("<option value=\"0\">请选择</option>");
            var values=arr[$(this).val()];
            for(var i in values){
                $("#b").append("<option value='"+values[i]+"'>"+values[i]+"</option>")
            }
        })
    })
</script>



2020javaweb教程之jQuery节点

未分类
2020-11-21 10:57:06
1822677238@qq.com

2020javaweb教程之jQuery节点

父节点:parent()

子节点:children()

同胞节点:siblings()

<div id="div">
    <p>div_1</p>
    <p>div_2</p>
    <p id="p3">div_3</p>
    <p>div_4</p>
    <p>div_5</p>
    <div id="div2">
        <p>div2_1</p>
        <p>div2_2</p>
    </div>
</div>
 (更多…)