• JavaWeb总结:


     前言:学习JavaWeb和前端基础学的比较匆忙,基础不是很牢固。到现在脑海中还只剩下一些零散的知识点以及项目,因此此篇博客浅浅的记录一下巩固所学,根据自己理解,如有错误欢迎指正。

    学习路程:

    JavaWeb学习之前学习了一些预备知识:HTML超文本标记语言,CSS样式,JavaScript脚本语言,jQuery框架,学完之后做了一个前端页面项目(模仿vivo商城),但只有一些简单的特效如轮播图,导航栏,地址填写,使用cookie进行页面数据的传递,购物车的功能,放大镜。个人感觉项目有好多地方,需要完善,例如,放大镜实现存在Bug,页面特效不完整等等。并且HTML和css样式,学起来很简单,可真正手写代码时,很痛苦,代码重复,量还多。

      当明白前端是如何实现的时候,开始接触后端也就正式的开始学习JavaWeb,首先学习的是服务器tomcat,web静态资源,动态资源。web项目的创建配置web项目的配置文件。Web的三大组件Serlet,过滤器,监听器.会话技术,cookie,还有写在HTML代码中的el表达式,jstl以及之前很火的jsp(java servlet pages)。

    重点:

      jQuery:

    jQuery一款主流浏览器的JavaScript库,封装了JavaScript相关方法调用,简化JavaScript对HTML DOM操作包含了

    • HTML 事件函数
    • CSS操作
    • AJAX
    • HTML 元素操作等等。

    使用jQuery我们可以少写很多代码,多做事情。就像我们之前学习JavaScriotp获取DOM文档对象模型时的三种方式:
    (1)通过 ID 属性:document.getElementById()
    (2)通过 class 属性:getElementsByClassName()
    (3)通过标签名:document.getElementsByTagName()

    使用jQuery获取文档对象时,是需要$(#id),$(.class)$(标签名)这样减少了很多代码

    上面的DOM对象是由JavaScript创建的js对象,而要使用jQuery中的 方法必须要把DOM对象转换为JQuery对象,只需要$(dom对象)。

    代码:

    1. <body>
    2. <div align="center">
    3. <input type="button" id="btn" value="我要成为jQuery对象" onclick="btnClick()" />
    4. div>
    5. body>

    转换:

    1. <script type="text/javascript">
    2. function btnClick(){
    3. //使用js方法获取DOM对象
    4. var domBtn = document.getElementById("btn");
    5. alert("1="+domBtn.value)
    6. //使用jQuery函数$()把DOM对象转换jQuery对象
    7. var $btn = $(domBtn);
    8. //调用jQuery方法val()
    9. alert("2="+$btn.val());
    10. }
    11. script>

     获取jQuery对象之后,就可以对象调用他的方法。而它的方法这里就不一一介绍了,可以查jQuery的官方文档。

    使用jQuery实现购物车:

    1. html>
    2. <html lang="zh-CN">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>我的购物车title>
    6. <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
    7. <link rel="stylesheet" href="css/base.css">
    8. <link rel="stylesheet" href="css/co">
    9. <link rel="stylesheet" href="css/car.css">
    10. <script src="js/jquery.min.js">script>
    11. <script src="js/car.js">script>
    12. head>
    13. <body>
    14. <div class="car-header">
    15. <div class="w">
    16. <div class="car-logo">
    17. <b>我的购物车b>
    18. div>
    19. div>
    20. div>
    21. div>
    22. <div class="c-container">
    23. <div class="w">
    24. <div class="cart-filter-bar">
    25. <em>全部商品em>
    26. div>
    27. <div class="cart-warp">
    28. <div class="cart-thead">
    29. <div class="t-checkbox">
    30. <input type="checkbox" name="" id="" class="checkall"> 全选
    31. div>
    32. <div class="t-goods">商品div>
    33. <div class="t-price">单价div>
    34. <div class="t-num">数量div>
    35. <div class="t-sum">小计div>
    36. <div class="t-action">操作div>
    37. div>
    38. <div class="cart-item-list">
    39. <div class="cart-item check-cart-item">
    40. <div class="p-checkbox">
    41. <input type="checkbox" name="" id="" checked class="j-checkbox">
    42. div>
    43. <div class="p-goods">
    44. <div class="p-img">
    45. <img src="upload/p1.jpg" alt="">
    46. div>
    47. <div class="p-msg">【5本26.8元】经典儿童文学彩图青少版八十天环游地球中学生语文教学大纲div>
    48. div>
    49. <div class="p-price">¥12.60div>
    50. <div class="p-num">
    51. <div class="quantity-form">
    52. <a href="javascript:;" class="decrement">-a>
    53. <input type="text" class="itxt" value="1">
    54. <a href="javascript:;" class="increment">+a>
    55. div>
    56. div>
    57. <div class="p-sum">¥12.60div>
    58. <div class="p-action"><a href="javascript:;">删除a>div>
    59. div>
    60. <div class="cart-item">
    61. <div class="p-checkbox">
    62. <input type="checkbox" name="" id="" class="j-checkbox">
    63. div>
    64. <div class="p-goods">
    65. <div class="p-img">
    66. <img src="upload/p2.jpg" alt="">
    67. div>
    68. <div class="p-msg">【2000张贴纸】贴纸书 3-6岁 贴画儿童 贴画书全套12册 贴画 贴纸儿童 汽div>
    69. div>
    70. <div class="p-price">¥24.80div>
    71. <div class="p-num">
    72. <div class="quantity-form">
    73. <a href="javascript:;" class="decrement">-a>
    74. <input type="text" class="itxt" value="1">
    75. <a href="javascript:;" class="increment">+a>
    76. div>
    77. div>
    78. <div class="p-sum">¥24.80div>
    79. <div class="p-action"><a href="javascript:;">删除a>div>
    80. div>
    81. <div class="cart-item">
    82. <div class="p-checkbox">
    83. <input type="checkbox" name="" id="" class="j-checkbox">
    84. div>
    85. <div class="p-goods">
    86. <div class="p-img">
    87. <img src="upload/p3.jpg" alt="">
    88. div>
    89. <div class="p-msg">唐诗三百首+成语故事全2册 一年级课外书 精装注音儿童版 小学生二三年级课外阅读书籍div>
    90. div>
    91. <div class="p-price">¥29.80div>
    92. <div class="p-num">
    93. <div class="quantity-form">
    94. <a href="javascript:;" class="decrement">-a>
    95. <input type="text" class="itxt" value="1">
    96. <a href="javascript:;" class="increment">+a>
    97. div>
    98. div>
    99. <div class="p-sum">¥29.80div>
    100. <div class="p-action"><a href="javascript:;">删除a>div>
    101. div>
    102. div>
    103. <div class="cart-floatbar">
    104. <div class="select-all">
    105. <input type="checkbox" name="" id="" class="checkall">全选
    106. div>
    107. <div class="operation">
    108. <a href="javascript:;" class="remove-batch"> 删除选中的商品a>
    109. <a href="javascript:;" class="clear-all">清理购物车a>
    110. div>
    111. <div class="toolbar-right">
    112. <div class="amount-sum">已经选<em>1em>件商品div>
    113. <div class="price-sum">总价: <em>¥12.60em>div>
    114. <div class="btn-area">去结算div>
    115. div>
    116. div>
    117. div>
    118. div>
    119. div>
    120. <script src="js/jquery.min.js">
    121. script>
    122. <script src="js/checkAll.js">
    123. script>
    124. body>
    125. html>

     js代码:

    1. // 全选按钮
    2. $(".checkall").change(function(){
    3. $("input").prop("checked",$(this).prop("checked"));
    4. });
    5. // 比较长度,判断是否选中
    6. $(".j-checkbox").change(function(){
    7. if($(".p-checkbox input:checked").length==$(".p-checkbox input").length){
    8. $(".checkall").prop("checked",true);
    9. }else{
    10. $(".checkall").prop("checked",false);
    11. }
    12. if($(this).prop("checked")){
    13. $(this).parent().parent(".cart-item").addClass("check-cart-item");
    14. }else{
    15. $(this).parent().parent(".cart-item").removeClass("check-cart-item");
    16. }
    17. // console.log($(".p-checkbox input:checked").length);
    18. // console.log($(".p-checkbox input").length);
    19. });
    20. // 计算商品小计
    21. $(".increment").click(function(){
    22. // console.log(12131312);
    23. // 找到兄弟文本框
    24. let count=$(this).siblings(".itxt").val();
    25. count++;
    26. // 把值赋值给文本框
    27. $(this).siblings(".itxt").val(count);
    28. //得到同一模块中的数量和单价相乘,得到该商品的小计
    29. // 先找到他的父类,之后找到他的父类的兄弟
    30. let p=$(this).parents(".p-num").siblings(".p-price").html();
    31. // 相乘
    32. p=p.substr(1);
    33. // 保留两位小数
    34. let price=(count*p).toFixed(2);
    35. // 传入小计模块的值
    36. $(this).parents(".p-num").siblings(".p-sum").html("¥"+price);
    37. getSum();
    38. })
    39. // 减号
    40. $(".decrement").click(function(){
    41. let count=$(this).siblings(".itxt").val();
    42. if(count==1){
    43. return false;
    44. }
    45. count--;
    46. $(this).siblings(".itxt").val(count);
    47. //得到同一模块中的数量和单价相乘,得到该商品的小计
    48. // 先找到他的父类,之后找到他的父类的兄弟
    49. let p=$(this).parents(".p-num").siblings(".p-price").html();
    50. // 相乘
    51. p=p.substr(1);
    52. // 保留两位小数
    53. let price=(count*p).toFixed(2);
    54. // 传入小计模块的值
    55. $(this).parents(".p-num").siblings(".p-sum").html("¥"+price);
    56. getSum();
    57. })
    58. // 用户操作文本框中的数据,计算小计的数量
    59. $(".itxt").change(function(){
    60. // 先得到数据
    61. let count=$(this).val();
    62. // 价格
    63. let p=$(this).parents(".p-num").siblings(".p-price").html();
    64. //单价和数量相乘,得到小计
    65. let price=(p*count).toFixed(2);
    66. // 把小计赋值给price
    67. $(this).parents(".p-num").siblings(".p-sum").html("¥"+price);
    68. getSum();
    69. })
    70. // 计算总额和总数量
    71. function getSum(){
    72. let money=0;//总额
    73. let count=0;//总数
    74. $(".j-checkbox:checked").parents(".p-checkbox").siblings(".p-num").children(".quantity-form").children(".itxt").each(function (i, em) {
    75. count += parseInt($(em).val());
    76. });
    77. $(".amount-sum em").text(count);
    78. $(".j-checkbox:checked").parents(".p-checkbox").siblings(".p-sum").each(function (i, em) {
    79. money += parseFloat($(em).text().substr(1));
    80. });
    81. $(".price-sum em").text("¥" + money.toFixed(2));
    82. }
    83. // 删除商品
    84. //删除单个商品
    85. $(".p-action").click(function(){
    86. $(this).parents(".cart-item").remove();
    87. getSum();
    88. })
    89. // 删除所有的商品
    90. $(".clear-all").click(function(){
    91. $(".cart-item").remove();
    92. getSum();
    93. })
    94. //删除选中的商品
    95. $(".remove-batch").click(function(){
    96. $(".j-checkbox:checked").parents(".cart-item").remove();
    97. getSum();
    98. })

    servlet:

    见:servlet详解

    jsp:

    JSP(Java Server Pages)是JavaWeb服务器端的 动态资源 。它与html页面的作用是相同的, 显示数据和获取数据 。由Java代码+HTML+JSP标签组成。

     JSP脚本就是Java代码片段,它分为三种:

    • <%...%>:Java语句;

    • <%=…%>:Java表达式;

    • <%!...%>:Java定义类成员;

     注意点:

      有些对象是创建的,JSP有九大内置对象:

    • out(JspWriter):等同与response.getWriter(),用来向客户端发送文本数据;

    • config(ServletConfig):对应“真身”中的ServletConfig;

    • page(当前JSP的真身类型):当前JSP页面的“this”,即当前对象;

    • pageContext(PageContext):页面上下文对象,它是最后一个没讲的域对象;

    • exception(Throwable):只有在错误页面中可以使用这个对象;

    • request(HttpServletRequest):即HttpServletRequest类的对象;

    • response(HttpServletResponse):即HttpServletResponse类的对象;

    • application(ServletContext):即ServletContext类的对象;

    • session(HttpSession):即HttpSession类的对象,不是每个JSP页面中都可以使用,如果在某个JSP页面中设置<%@page session=”false”%>,说明这个页面不能使用session。

    在这9个对象中有很多是极少会被使用的,例如:config、page、exception基本不会使用。

     

    request&respose

    :Web端无非是发送响应和接收请求,所以响应和请求就很重要了

    详情见:  见:servlet详解

    总结:

    总的来讲,JavaWeb学了很多的东西,可知识点理解不够深入,自己同时在很多地方没有拓展,只是知道基本代码怎么写,基本的流程是一个怎样的。希望之后自己改正这个还没有把思路理清楚,条件搞明白,就写代码的这个坏习惯。

  • 相关阅读:
    Abnova酸性磷酸酶(小麦胚芽)说明书
    数据仓库项目从来不是技术项目
    Springboot+mybatis-plus微信支付
    每天五分钟机器学习:使用反向传播算法完成神经网络的参数更新
    揭秘 .NET 中的 TimerQueue(下)
    html5期末大作业:自适应网站开发——公司网站7页 ,响应式页面
    VSCODE 打开多个文件夹
    特征提取PCA实现及避坑指南
    mysql中有isolated transaction吗举例说明
    Vue3.3指北(一)
  • 原文地址:https://blog.csdn.net/qq_50692350/article/details/127726093