Jsp基础复习(一)

知识储备

  1. JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP实际上就是Servlet。

JSP原理

浏览器将JSP文件发给服务器,服务器将jsp文件翻译成JAVA文件,然后在编译成字节码文件(.class)最后再返回给服务器
在这里插入图片描述
然后可以再服务器下的work文件夹下\work\Catalina\localhost找到这个路径,并且打开你项目会有下面的文件
在这里插入图片描述
login.jsp.java
在这里插入图片描述
login.jsp
在这里插入图片描述

JSP语法

  1. JSP模版元素
    网页的静态内容。如:html标签和文本。
  2. JSP的脚本
    2.1、小脚本 <% java代码 %>
    2.1、表达式 <%= 2+3 %> 等价于out.print(2+3);
    login.jsp:
    在这里插入图片描述
    login.jsp.java:
    在这里插入图片描述
    页面效果:
    在这里插入图片描述
    2.3、声明 <%! %> 表示在类中定义全局成员,和静态块。
  3. JSP注释
    JSP注释:<%-- 被注释的内容 --%> 特点:安全,省流量
    网页注释: 特点:不安全,费流量
  4. 指令
    语法:
    <%@ 指令名称 属性1=“属性值1” 属性2=“属性值2”。。。%>
    或者:
    <%@ 指令名称 属性1=“属性值1”%>
    <%@ 指令名称 属性2=“属性值2”%>

Page指令

  1. page指令用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。
  2. 属性:
    2.1 import 和java代码中的import是一样的
    <%@ page import=“java.util.Date,java.util.List”%>
    或者:
    <%@ page import=“java.util.Date”%>
    <%@ page import=“java.util.List”%>
    JSP会自动导入以下的包:
    import java.lang.;
    import javax.servlet.
    ;
    import javax.servlet.http.;
    import javax.servlet.jsp.
    ;
    2.2 session: 是否会自动创建session对象。默认值是true;
    2.3 buffer: JSP中有javax.servlet.jsp.JspWriter输出字符流。设置。输出数据的缓存大小,默认是8kb.
    2.4 errorPage: 如果页面中有错误,则跳转到指定的资源。
    errorPage="/uri" 如果写“/”则代表当前应用的目录下,绝对路径。如果不写“/”则代表相对路径。
    2.5 isErrorPage: 是否创建throwable对象。默认是false;
    2.6 contextType: 等同于response.setContextType(“text/html;charset=utf-8”);
    2.7 pageEncoding: 告诉JSP引擎要翻译的文件使用的编码。
    2.8 isELIgnored: 是否支持EL表达式。 默认是false

include指令

静态包含:把其它资源包含到当前页面中。
<%@ include file="/include/header.jsp" %>
动态包含:
<jsp:include page="/include/header.jsp"></jsp:include>

两者的区别:翻译的时间段不同
前者:在翻译时就把两个文件合并
后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。

原则:能用静的就不用动的。

taglib指令

作用:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段。
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isErrorPage="true"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%
		if(5>3)
			out.write("我很厉害");
	 %>
//上面的代码等价于下面的
	<c:if test="${5>3 }">
		我很厉害
	</c:if>
</body>
</html>

jsp的6个动作

使用标签的形式来表示一段java代码。

  1. <jsp:include > 动态包含
  2. <jsp:forward > 请求转发
  3. <jsp:param > 设置请求参数
  4. <jsp:useBean > 创建一个对象
  5. <jsp:setProperty > 给指定的对象属性赋值
  6. <jsp:getProperty > 取出指定对象的属性值
    例子:
    上下等价
<%
	Student stu = new Student();
	stu.setName("张三");
	out.print(stu.getName());
	//request.getRequestDispatcher("/2.jsp").forward(request, response);
 %>
 <jsp:useBean id="stu1" class="com.itheima.entity.Student"></jsp:useBean>
 <jsp:setProperty property="name" name="stu1" value="jerry"/>
 <jsp:getProperty property="name" name="stu1"/>
 <jsp:forward page="/2.jsp">
 	<jsp:param value="123" name="name"/>
 	<jsp:param value="333" name="pwd"/>
 </jsp:forward>

JSP的九大内置对象

指在JSP的<%=%> 和<% %>中可以直接使用的对象
对象名 类型 说明
request:javax.servlet.http.HttpServletRequest
response:javax.servlet.http.HttpServletResponse
session:javax.servlet.http.HttpSession:由session="true"开关
application:javax.servlet.ServletContext
exception:java.lang.Throwable 由isErrorPage="false"开关
page:java.lang.Object当前对象this:当前servlet实例
config:javax.servlet.ServletConfig
out:javax.servlet.jsp.JspWriter:字符输出流,相当于 printWriter对象
pageContext:javax.servlet.jsp.PageContext

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值