JavaWeb JSP技术

一、转发和重定向的区别

Response重定向之后,页面获取不到转发数据的原因?

因为重定向有两次请求,而http协议是无状态的,所有获取不到上一次请求的数据。

重定向和转发两者的区别:

request   在服务器内部执行  一次请求  url 地址不会发生改变    可以携带参数         安全与效率高      不可以         可以访问到web-inf  下的资源
     
response    在客户端执行    二次请求    url地址是会发生改变    可以携带参数(一般不会使用)  安全与效率低  跳转到另一个项目   不可以访问到 web-inf 下的资源

两者的使用场合:

使用转发的前提: 效率高 安全性   传递参数的时候  就使用转发( 查询   使用转发) 

使用重定向的前提: 上一次连接 与本次连接没有任何关系的时候的,不需要携带参数,需要跳转到其它项目 (增加 删除 修改  使用重定向) 

两都的流程图见上一篇博客Day13

二、JSP技术

JSP与Servlet的异同

JSP:是运行在服务器的页面

Servlet: 是运行在服务器的java代码 (有关系)(页面的展示) (html+Java代码)

静态的网页: 前后端交互比较麻烦

动态的页面: 是可以写html标签 :但是比较麻烦,html 与java代码混合,所有说不使用servle写网页

jsp属于一个特殊的servlet
index_jsp extends org.apache.jasper.runtime.HttpJspBase
HttpJspBase是HttpServle的一个子类

out.write("\n");out.write(" \n"); jsp 中所有html代码都是通过write()来写入到浏览器里

jsp 被访问的时候的流程: 如图
在这里插入图片描述
jsp 与servlet 的区别:
sp就是一个 servlet

区别:
       jsp 主要页面的显示(不做转发到某个界面,或者是到那个地方请求) ==>jsp ==>servlet ==>service ==> dao ==>数据库
      servlet(controller) 负责处理请求与响应

model1 模式的缺点: java代码 html 代码混合 ,不方便修改与维护
在这里插入图片描述

model2 jsp 在做页面展示 servlet(controller) 负责处理请求与响应
在这里插入图片描述

jsp 的组成部分:

java的片段 <% 中间去写就java代码,不能够写html标签%>
在这里插入图片描述
输出语句 <%=%>
在这里插入图片描述
注释: 快捷键:alt+shift+/
声明:<%! %> 如果这里有变量是成员变量,一般是申明方法

Jsp中的三大指令

Jsp包含三个指令 page(描述页面)、include(页面包含)、tagilb(表达式引入)

page 指令:

 <%@ page contentType="text/html;charset=UTF-8" language="java"   %>

contentType="text/html 表示jsp中的类型   charset=UTF-8" 设置其编码格式  language="java"  语言  errorPage="welcome.jsp" 页面发生异常所有加载的页面
 <%@ page import="java.text.SimpleDateFormat" %>导包 

include 指令:
引入其它jsp文件(基本上都是公共的部分)
<%@ include file=“head.jsp”%> 静态引入:适合引用纯html代码 先加载 再编译

jsp提供的动态标签库:动态的引入 边加载 边编译 (适合于引入动态的界面) <jsp:include page=“head.jsp”></jsp:include>

taglib 指令:
指令一般引用第三方的表达式比如jstl表达式 fmt 格式化时间的

el表达式

el 表达式 : 作用是简化jsp里的代码,用于获取存于内置(request, respone servletContext)对象的值

语法:  ${或者的变量的值} 
        使用el表达式来获取对象,必须给这个对象set get 方法   获取的          
语法  ${对象名称.属性的名称}  
        el 作用 1.可以避免简单的错误  2.可以做一些简单的算术  3.可以获取内置对象作用域下的值

在这里插入图片描述

jstl 表示式:

一般是与el搭配使用,简化jsp里的代码
使用jstl 表达式:
1.导入jar (添加依赖)
2.引用相应的标签库 jstl
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
prefix=“c” 表示前缀 一般取名为c 可以进行修改(但是不建议)
uri=“http://java.sun.com/jsp/jstl/core” 表示引入的核心库(也就是网址) 固定写法
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值