栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

jsp与servlet数据的交互(java servlet工作原理)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

jsp与servlet数据的交互(java servlet工作原理)

Web组件交互

组件指的是web项目中的每个小部分,如Servlet,jsp,HTML等
为什么要做调整和共享,为了让jsp和Servlet更加的责任分离,去做自己擅长的事
servlet负责去数据库里查数据,将查到的数据通过请求对象给jsp,jsp负责将这些数据装饰美化响应给浏览器

转发和重定向

转发:从一个组件(资源)跳转到另一个组件,转发方法:请求对象.getRequestDispatcher("/要跳转的地址,只能在服务器中跳转").forward(请求对象,响应对象) 一定要记得写这个转发方法带上请求对象和响应对象过去
重定位:一个组件响应回另一个组件的访问地址,让浏览器访问另一个组件,重定向方法: 响应对象.sendRedirect("/要重新访问的地址")

转发和重定向的区别

什么时候使用转发,什么时候使用重定向: 如果要保留浏览器请求的信息使用转发,要访问WEB-INF中的资源也使用转发, 需要访问服务器外部的项目(资源)使用重定向

注意: 准发和重定向后面不要写代码,因为都跳转到其它组件去执行了,后面的代码不会执行,没有意义

作用域

用于Servlet之间数据共享的内存区域,作用域里面的存储结构是一个map
不同作用域的作用范围:

    jsp文件专属作用域: 页面域 pageContext : 只在这个jsp文件中有效HttpServletRequest 请求域对象,由服务器创建 : 只在同一次请求中起作用HttpSession 会话请求域对象 可通过请求对象.getSession()获得 : 只在同一会话中有效(一个浏览器?)ServletContext 上下文请求域对象 可以通过this.getServletContext()获得,或者请求对象.getServletContext()获得 : 在服务器启动过程都有效
    作用域的选择: 满足需求的前提下,作用范围小优先,减少数据存在的时间,节省内存
EL表达式

EL表达式,专门用来获取作用域中的值打印在浏览器,或者打印表达式的值,相比于在jsp中写java代码<%= %>更加简洁
语法 : ${变量名或表达式}
获取不同类型的数据:

    对象类型 : ${对象.属性名}list集合类型 : ${集合 [元素的索引] }数组类型 : ${数组 [元素的索引] }Map类型 : ${map对象.key的名字} 特殊的key名字 : ${map对象 [“key的名字”]}
    EL表达式中的逻辑表达式和java中的一样: ${值1 逻辑运算符 值2}
    三元运算符: ${逻辑表达式? 表达式true的值 : 表达式false的值}
    判空表达式 : ${empty 变量名} 判断变量中是否有内容,有内容打印false,没内容true
    **EL从四个作用域中取值 : ${作用域对象.键名} **
JSTL标签库

在使用EL取值的时候,一次只能去一个值,因为数据库中不知道有多少条数据,所以需要循环,在java代码中循环又破坏了代码分离的思想,所以使用jstl标签库
使用JSTL标签前先将jar包导入到WEB-INF下创建一个bli目录,将包引入
(core)核心标签库常用标签:

    成 年 了 < / c : i f > < c : i f t e s t = " {age >= 16}"> 成年了 成年了
    还未成年

    成 绩 优 秀 < / c : w h e n > < c : w h e n t e s t = " {score >= 90}"> 成绩优秀 成绩优秀 60}">
    成绩及格


    成绩不及格

    //只匹配一个条件
    3.forEach
       
           角色姓名
           年龄
       
       
           
               ${stu.name}
               ${stu.age}
           
       
   

遍历一个集合,将集合的数据存到作用域中stu键中
4. 日期格式化标签

<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

	
		formatDate 标签
	
	
		<%
			request.setAttribute("date", new Date());
		%>
		当前时间:
	

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/773639.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号