jsp学习

1、什么是jsp

jsp全称是Java server pages java的服务页面

jsp的主要作用是代替Servlet程序回传html页面的数据

Servlet回传数据非常麻烦

Servlet回传数据截图:

image-20210121200446715

jsp回传数据截图:

image-20210121200509595

2、jsp页面本质

jsp页面本质是一个Servlet程序

当我们第一次访问jsp页面的时候,tomcat服务器会帮我们把jsp页面翻译成为一个java源文件,并对它进行编译成.class字节码程序

3、jsp头部的page指令

jsp的page指令可以修改jsp页面中一些重要的属性,或者行为。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
  1. language属性:表示jsp翻译后是什么语言文件。
  2. contentType属性:表示jsp返回的数据类型是什么,也就是response.setContentType()参数值
  3. pageEncoding属性:表示当前jsp页面文件本身的字符集
  4. import属性:导包

​ =out输出流时使用=====

  1. autoFlush属性:设置out输出流缓冲区满了之后,是否自动刷新冲级区。默认是True

  2. buffer属性:设置out缓冲区的大小。默认是8kb

    ​ =out输出流时使用=====

  3. errorPage属性:设置jsp页面运行时出错,自动跳转去的错误页面路径(jsp页面)

  4. isErrorPage属性:设置当前jsp页面是否错误信息页面,默认是false

  5. session属性:设置访问当前的jsp页面,是否会创建HTTPSession对象。默认是true

  6. extends属性:设置servlet默认继承那个类或者包

4、声明脚本(极少使用)

<%! 声明java代码 %>

<%--声明类属性--%>    
<%!        
    private Integer id;
	private String name;
	private static Map<String,Object> map;  %>

<%--声明静态代码块--%>
<%!    
    static {
    map = new HashMap<String,Object>();
    map.put("key","value");
}%>

<%--声明类方法--%>
<%!
    public int abc(){ 
    return 12;    
}%>

<%--声明内部类--%>
<%!  
    public static class A{
    private Integer id;
    private String name;  
}%>


5、表达式脚本(常用)

<%= java表达式%>

表达式脚本的作用,在jsp页面上输出数据

可以输出整型

输出浮点型

输出字符串

输出对象

<%= response.getStatus() %>

6、代码脚本

<% java代码 %>

if语句:

<%
	int i = 0;
	if(条件){
        代码
    }
%>

<%if(条件){%>
	输出内容
<%}else{%>
	输出内容
<%}%>

for循环:

翻译后java文件中jspservice发放内的代码都可以写

7、jsp九大内置对象

request 请求对象

response 响应对象

pageContext jsp的上下文对象

session 会话对象

application ServletContext对象

config ServletConfig对象

out jsp输出流对象

page 指向当前jsp的对象

exception 异常对象

8、jsp四大域对象

域对象可以像map一样存取数据的对象。四个域对象功能一样。不同的是他们对数据的存取范围

pageContext(PageContextImpl类) 当前jsp页面范围内有效

request(HttpServletRequest类)一次请求内有效

session(HttpSession类)一个会话范围内有效

application(ServletContext)整个web工程范围内有效

优先顺序:从小到大

pageContext======>request======>session=======>application

9、jsp静态包含

图解:

image-20210121205453407

代码:

<%@include file ="/include/footer.jsp"%>

特点:

  1. 静态包含不会翻译被包含的jsp页面
  2. 静态包含其实是把被包含的位置进行输出

10、jsp动态包含

底层原理:

image-20210121211039442

代码:

<jsp:include page="/include/footer.jsp">
    传参数给footer页面
    <jsp:param name="username" value="root"/>
</jsp:include>

footer.jsp页面使用

<%=request.getParameter("username")%>

获取传递过来的参数

特点:

  1. 动态包含会把包含的jsp页面翻译为java代码
  2. 动态包含底层原理代码会区去调用被包含的jsp页面执行输出
  3. 可以给被包含的页面传递参数

11、jsp请求转发

代码:

<jsp:forward page="/footer.jsp"></jsp:forward>

12、请求转发的使用

est.getParameter(“username”)%>


获取传递过来的参数

特点:

1. 动态包含会把包含的jsp页面翻译为java代码
2. 动态包含底层原理代码会区去调用被包含的jsp页面执行输出
3. 可以给被包含的页面传递参数



# 11、jsp请求转发

代码:

```
<jsp:forward page="/footer.jsp"></jsp:forward>
```

# 12、请求转发的使用

![image-20210121212133632](https://img-blog.csdnimg.cn/img_convert/67d0bb81dafe9b6b4b9db363a843ee16.png)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值