JavaWeb

       JavaWeb的简要介绍

在这里插入图片描述


JavaWeb

网页的组成

  • 结构(HTML)
    • 超文本标记语言
    • 网页的主要内容通过html来实现
    • 用来写网页的语言
  • 表现(CSS)
    • 层叠样式表
    • 网页的字体颜色、背景色、背景图片等通过它来实现
    • 用来美化网页
  • 行为(JavaScript/jQuery)
    • 用来实现网页上的动态效果
  • 一个良好的网页要求结构、表现、行为三者分离

HTML

  • 常用的标签

    • 标题标签

      • 一共6个

        <h1>一级标题</h1>
        <h2>二级标题</h2>
        ...
        <h6>六级标题</h6>
        
    • 超链接

      • 通过标签a创建一个超链接

        <a href="设置要跳转的页面的地址"></a>
        
    • 表格

      • 通过table标签创建一个表格
        • 表格中的行通过tr标签来表示
          • 表格中的标头通过th标签来表示
          • 表格中的列(单元格)通过td标签来表示
            • 通过rowspan属性跨行合并单元格
            • 通过colspan属性跨列合并单元格
      <table>
          <tr>
          	<th>姓名</th>
              <th>性别</th>
              <th>年龄</th>
          </tr>
          <tr>
          	<td>盖伦</td>
              <td></td>
              <td>19</td>
          </tr>
      </table>
      
    • 表单

      • 使用form标签创建一个表单

        <!-- 通过form标签创建一个表单 
            action属性:设置要提交的服务器的地址
            method属性:设置请求方式
            get:将发送一个GET请求,此时用户输入的数据是通过浏览器的地址栏进行传输
            post:将发送一个POST请求,此时用户输入的数据通过HTTP协议请求报文中的请求体进行传输
        -->
            <form action="success.html" method="post">
        <!-- 
                表单中的表单项通过input标签来创建,表单项的类型通过type属性来指定:
                必须给表单项指定name属性值,用户输入的数据通过name属性值进行携带,并以键值对的形式
                发送到服务器,多个键值对之间使用&符号分隔,例如:username=qq&password=111
         -->
                用户名称:<input type="tex t" name="username"><br>
                用户密码:<input type="password" name="password"><br>
                <!-- 提交按钮上显示的文字通过value指定 -->
                <input type="submit" value="登录">
        	</form>
        

CSS

  • 样式可以书写的位置

    • 1)写在标签的style属性中

      • 结构与表现相耦合,不建议使用

        <p style="color: red;font-size: 30px">我是一个段落</p>
        
    • 2)写在style标签中,style标签放在head标签中

      • 开发测试阶段使用这种方式

        <style type="text/css">
        	#rd{
        		color: #bbffaa
        	}
        </style>
        
    • 3)引入外部的css文件

      • 项目上线后使用这种方式

        <link rel="stylesheet" type="text/css" href="style.css" />
        
  • CSS中的基本选择器

    • 标签选择器

      h1 {
      	color: red;
      }
      
    • ID选择器

      • 格式:#id属性值

        #p1 {
        	color: green;
        }
        
    • 类选择器

      • 格式:.class属性值

        .p2 {
        	color: blue;
        }
        
    • 分组选择器

      #p1, .p2 {
      	font-size: 20px
      }
      

JavaScript

  • javaScript可以书写的位置跟CSS类似,一共三种

  • 变量

    • 通过var关键字声明一个变量

    • 在使用变量的过程中可以给它赋任意值

      var a;a=123;a="hello";a=函数;a=对象;
      
  • 函数

    • 通过function关键字声明一个函数

    • 在声明函数时不需要指定返回值的类型及形参的类型

      //方式一:
      //不带参数的函数
      function fun(){
          //函数体
      }
      function sum(a,b){
          return a + b + c;
      }
      //方式二:
      var sum2 = function(){
          return a + b + c
      }
      //我们通常是通过方式二这种方式将一个函数赋给对象的事件属性
      
  • DOM

    • 全称:Document Object Model,文档对象模型
    • DOM常用的属性和方法
      • document.getElementById(“id属性值”)
        • 根据标签的id属性值获取一个具体的标签对象
      • 对象.innerHTML
        • 获取或设置成对出现的标签中的文本内容
          • 对象.innerHTML
            • 获取文本内容
          • 对象啊.innerHTML=“new value”
            • 设置文本内容
        • 在jQuery中与之对应的是text()/html()方法
      • 对象.onclik
        • 给标签绑定单击事件
        • 在jQuery中与之对应的是click()方法
      • 对象.onfocus
        • 给对象绑定获取焦点的方法
        • 在jQuery中与之对应的是focus()方法
      • 对象.onblur
        • 给对象绑定失去焦点的事件
        • 在jQuery中与之对应的是blur()方法
      • 对象.onchange
        • 给对象内容改变的方法
        • 在jQuery中与之对应的是change()方法

Servlet

  • Servlet是服务器端的一个组件,用来处理用户的请求

  • 直接new一个Servlet,然后配置映射的请求地址即可

  • doGet和doPost方法中的两个参数request和response的作用

    • request的作用

      • 获取请求参数
      • 转发
      • 它是一个域对象
    • response的作用

      • 给浏览器响应一个字符串或一个页面
      • 重定向
      	//处理GET请求的方法
      	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      		System.out.println("doGet方法被调用");
      		//request作用
      		//1.获取请求参数
      		/*
      		 * GET请求的请求中文乱码问题的解决方案:
      		 * 在Tomcat的配置文件server.xml中的第一个Connector标签中添加属性URIEncoding="UTF-8"
      		 * 
      		 */
      		String username = request.getParameter("username");
      		String password = request.getParameter("password");
      		System.out.println(username);
      		System.out.println(password);
      		//2.转发
      		//获取转发器
      		RequestDispatcher requestDispatcher = request.getRequestDispatcher("success.html");
      		//进行请求的转发
      		requestDispatcher.forward(request, response);
      		//3.request是一个域对象
      	}
      
      	//处理POST请求的方法
      	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      		System.out.println("doPost方法被调用");
      		/*
      		 * POST请求的请求中文乱码问题的解决方案:
      		 * 在第一次获取请求参数之前,通过request设置字符集为UTF-8
      		 * 
      		 */
      		request.setCharacterEncoding("UTF-8");
      		String username = request.getParameter("username");
      		String password = request.getParameter("password");
      		System.out.println(username);
      		System.out.println(password);
      		//response的作用
      		//1.给浏览器响应一个字符串或一个页面
      		/*
      		 * 响应中文乱码的解决方案:
      		 * 在获取流之前设置内容的类型,内容的类型中包含UTF-8字符集
      		 */
      //		response.setContentType("text/html;charset=UTF-8");
      //		PrintWriter writer = response.getWriter();
      //		writer.write("响应成功");
      		//2.重定向
      		response.sendRedirect("success.html");
      		/*
      		 * 转发和重定向的区别
      		 * 1.转发浏览器发送一次请求;重定向浏览器发送两次请求
      		 * 2.转发浏览器地址栏地SP址无变化;重定向浏览器地址栏地址有变化
      		 * 3.转发可以访问WEB-INF目录下的资源;重定向不可以访问WEB-INF目录下的资源
      		 * 4.转发可以共享request域中的数据;重定向不可以共享request域中的数据
      		 */
      	}
      

JSP

  • JSP必须运行在服务器上,它本质上是一个Servlet

  • HTML和Servlet能实现的功能JSP都能实现

  • JSP中的基本语法

    • JSP脚本片段

      • 格式:<% %>
      • 作用:在里面写java代码
    • JSP表达式

      • 格式:<%=>

      • 作用:用来输出对象

        <%
        	for(int i = 0;i < 10;i++){
            	//System.out.print("伊朗与美国");
        %>
        <h1>伊朗与美国!</h1>
        <%
        	}
        %>
        <%="哈哈哈" %>
        
  • 四个域

    • page域

      • 范围:当前页面
      • 对应的域对象:pageContext
      • 域对象的类型:PageContext
    • request域

      • 范围:当前请求(一次请求)
      • 对应的域对象:request
      • 域对象的类型:HttpServletRequest
    • session域

      • 范围:当前会话(一次会话)
      • 对应的域对象:session
      • 域对应的类型:HttpSession
    • application域

      • 范围:当前Web应用
      • 对应的域对象:application
      • 域对象的类型:ServletContext
    • 四个域对象都有以下三个方法

      • void setAttribute(String key,Object value)
      • Object getAttribute(String key)
      • void removeAttribute(String key)
      	<!-- 在当前页面中分别向四个域中添加四个属性 -->
      	<%
      		pageContext.setAttribute("pageKey", "pageValue");
      		request.setAttribute("reqKey", "reqValue");
      		session.setAttribute("sessKey", "sessValue");
      		application.setAttribute("appKey", "appValue");
      	%>
      	<h1>在当前页面中分别获取四个域中的属性值</h1>
      	page域中的属性值是:<%=pageContext.getAttribute("pageKey") %><br>
      	request域中的属性值是:<%=request.getAttribute("reqKey") %><br>
      	session域中的属性值是:<%=session.getAttribute("sessKey") %><br>
      	application域中的属性值是:<%=application.getAttribute("appKey") %><br>
      
  • EL

    • EL全称是ExpressionLanguage,是JSP的内置表达式

    • 格式:${表达式}

    • 作用:主要用来获取域对象中的属性值,用来代替JSP的表达式

    • EL表达式获取数据时才输出,获取不到数据则什么也不输出

    • EL中的四个Scope对象

      • pageScope

        • 获取page域中的属性值
      • requestScope

        • 获取request域中的属性值
      • sessionScope

        • 获取session域中的属性值
      • applicationScope

        • 获取application域中的属性值
        <%
            Date date = new Date();
            //分别向四个域中添加四个属性	
            pageContext.setAttribute("date",date);
            request.setAttribute("date",date);
            session.setAttribute("date",date);
            application.setAttribute("date",date);
        %>
            通过JSP表达式获取域对象中的属性值:<%=pageContext.getAttribute("date") %><br>
            通过EL表达式获取域对象中的属性值:${date}<br>
            通过EL表达式获取request域中的属性值:${requestScope.date}
        

Ajax

  • 通过JavaScript发送请求,使用XML作为响应数据,后来XML已经被另外一种数据格式JSON所替代

  • 同步请求和异步请求的区别

    • 同步请求
      • 发送请求之后必须等待服务器的响应成功之后才能发送其他请求,有一个等待的过程
      • 响应成功之后会刷新整个页面
    • 异步请求
      • 发送请求之后无需等待服务器的响应即可发送其他请求
      • 响应成功之后不会刷新整个页面,可用局部更新页面中的内容
  • 如何通过jQuery发送ajax请求

    • 使用$.ajax()方法发送Ajax请求

      • ajax()方法中的常用项

        • url

          • 必须的。用来设置请求地址,值是一个字符串
        • type

          • 可选的。用来设置请求方式。GET或POST,默认是GET,值是一个字符串
        • data

          • 可选的。用来设置请求参数,值是一个字符串
        • success

          • 可选的。用来设置一个回调函数,当响应成功之后系统会自动调用该函数,响应数据会以

            参数的形式传入到该函数中

        • dataType

          • 可选的。用来设置响应数据的类型,如text、json等
      $.ajax({
          url:"AjaxServlet",
          data:"username=admin&password=123456",
          success:function(data){
              $("#msg").text(data);
          },
          dataType:"text"
      });
      
    • JSON

      • JSON格式

        • JSON对象
        • JSON数组
      • JSON中接收的数据类型

        • 字符串
        • 数字
        • null
        • 布尔类型
        • 数组
        • 对象
      • 在js中JSON对象和JSON字符串之间的转换

        • JSON对象转JSON字符串
          • JSON.stringify(JSON对象)
        • JSON字符串转JSON对象
          • JSON.parse(JSON字符串)
        	//JSON的格式
        	//1.JSON对象
        	//属性名必须使用双引号括起来;属性名和属性值之间使用冒号分隔;多个属性之间使用逗号分隔
        	var jsonObj = {"name":"孙悟空","age":520};
        	//alert(jsonObj.name);
        	//2.JSON数组
        	var jsonArry = ["猪八戒",1500,true,null,jsonObj];
        	//获取jsonArry中的jsonObj中的age属性值
        	//alert(jsonArry[4].age);
        	//在JS中将JSON对象转换为JSON字符串
        	var objToStr = JSON.stringify(jsonObj);
        	//alert(objToStr);
        	//声明一个JSON字符串
        	var jsonStr = '{"name":"唐僧","age":"18"}';
        	//alert(jsonStr);
        	//在JS中将JSON字符串转换为JSON对象
        	var strToObj = JSON.parse(jsonStr);
        	//alert(strToObj.name);
        
        • 在Java中对象与JSON字符串之间的转换

          • 借助于第三方工具json-lib、jackson、gson等可将java对象转换为JSON字符串,也可将JSON字符串转换会Java对象

          • 通常是前端发送一个Ajax请求,在后台查询到对象之后将对象转换为JSON字符串响应到前端

          • 通过Ajax请求接收JSON格式的响应数据

            • 前端代码
          //通过发送Ajax请求接收JSON格式的响应数据
          $.ajax({
          	url:"JSONServlet",
          	success:function(data){
          	alert(data);
          	},
          	dataType:"json"
          });
          
          • 后端代码
          	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          		//假设从数据库中查询到员工的信息
          		response.setContentType("text/html;charset=UTF-8");
          		Employee employee = new Employee(1, "张三", "15142151403@163.com");
          		//创建Gson对象
          		Gson gson = new Gson();
          		//将Employee对象转换为JSON字符串
          		String json = gson.toJson(employee);
          		System.out.println(json);
          		//给浏览器响应一个JSON格式的字符串
          		response.getWriter().write(json);
          	}
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值