JSP 学习总结

JSP

1、jsp简介

​ 由于servlet不擅长输出html代码,所以就发明了能直接在html中写java代码的方式(jsp)

2、jsp代码解释

<%@page contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" import="java.util.*"%>

你好 JSP

<br>

<%=new Date().toLocaleString()%>

<%@page contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8" import="java.util.*"%>

jsp的 <%@page指令,必须要带这句代码

contentType="text/html; charset=UTF-8"

通知浏览器以UTF-8进行中文解码,相当于 response.setContentType("text/html;charset=UTF-8");

pageEncoding="UTF-8" 

设置jsp中文编码格式为 utf-8

import="java.util.* 

导入其它类,如果有多个类可以使用逗号隔开

<%=new Date().toLocaleString()%>

输出当前时间,相当于在Servlet中使用 response.getWriter()进行输出,response.getWriter().println(new Date().toLocaleString());

3、jsp页面元素

  • 静态内容

    就是 html、css、javascript等

  • 指令

    以 <%@开始 %>结尾,如 <%@page import = “java.util.*”%>

  • 表达式 <%=%>

    用于输出一段 html

  • Scriptlet

    在<%%>之间,可以写任何java代码

  • 声明

    在<%!%>之间可以声明字段或者方法,不建议

  • 动作

    <jsp:include page = “Filename”> ,在jsp页面中包含另一个页面

  • 注释 <%-- --%>

    与html注释不同,浏览器看不到响应代码,相当于从servlet中注释掉了

4、jsp include

  • 指令include

    <%@include file = "fileName" %>

    指令include相当于将两个jsp文件进行合并

  • 动作include

    <jsp:include page = "fileName" />

    动作include不会把 page内容插入到当前jsp文件中,实际是通过当前jsp文件访问了 page内容,然后把结果返回,嵌入到响应中

  • 传参

    指令include将两个文件合并成一个java文件,所以不涉及传参

    动作include 涉及传参

    举例:

    ​ 当前jsp

    <%@page contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.*"%>
      
    你好 JSP
    <%=new Date().toLocaleString()%>
     
    <jsp:include page="footer.jsp">
        <jsp:param  name="year" value="2017" />
    </jsp:include>
    

    ​ include jsp

    <hr>
        <p style="text-align:center">copyright@<%=request.getParameter("year")%>
    </p>
    

5、jsp跳转

jsp跳转也是分为客户端跳转和服务端跳转,和servlet是一样

  • 客户端跳转(客户端两次请求)

    <%
        response.sendRedirect("hello.jsp");
    %>
    
  • 服务端跳转(客户端一次请求)

    request.getRequestDispatcher("hello.jsp").forward(request, response);
    

    或使用简化代码

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

6、jsp cookie

cookie的作用是一种浏览器和服务器的数据交互方式,由服务器创建,保存在浏览器本地,每次访问网站的时候,都会把cookie发送给服务器

  • 设置cookie

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
        
        
    <% Cookie c = new Cookie("name", "Gareen");
    	c.setMaxAge(24*60*60);
    	c.setPath("/");
    	response.addCookie(c);
    %>
    <a href = "getCookie.jsp" >跳转到cookie获取页面</a>
    
  • 获取cookie

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="javax.servlet.http.Cookie"%>
        
        
     <%
     	Cookie[] cookies = request.getCookies();
     	if(null != cookies){
     		for(int i = 0; i < cookies.length - 1; i++){
     			out.print(cookies[i].getName() + " : " + cookies[i].getValue() + "<br>");
     		}
     	}
     %>   
     
    

7、jsp session

  • 什么是session

    session是会话,指的是用户打开浏览器网站开始,无论中间进行了什么操作,只要不关闭浏览器,都属于同一个会话

8、jsp的作用域

8.1-jsp有4个作用域,分别是
  • pageContext 当前页面
  • requestContext 一次请求
  • sessionContext 当前会话
  • applicationContext 全局,所有用户共享

四个作用域范围从小到大,优先级从高到低

通过 pageContext.setAttribute(key, value) 的数据,只能在当前页面访问,其它页面不能访问

request.setAttribute(key,value) 表示一次请求的范围,可以使用jsp服务端跳转,进行数据的传递,服务端跳转也只算一次请求

session.setAttribute(key,value),设置的数据,可以在同一个会话任何页面获取

application.setAttribute(key,value) 设置的数据,所有用户都可获取

9、jsp对象

jsp一共有9个隐藏对象,隐藏对象指的是不需要显示定义,直接就可以使用的对象

对象名称作用
request请求
response响应
out输出
pageContext当前页面作用域
session当前会话作用域
application当前全局作用域
page当前对象
config获取 web.xml中的配置和参数
exceptionexception 对象只有当前页面的<%@page 指令设置为isErrorPage="true"的时候才可以使用。用来处理异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值