jsp初学

目录

定义:

输出

注释

1JSP提供了隐藏注释:

2动态注释,网页看不到,只能看源码

指令

1page指令,描述属性

2include指令,显示的是其他jsp页面,

jsp动作元素

1包含文件元素

*****include指令与 动作元素不同原因

2请求转发元素

JSP隐式对象

1out对象

2pageContext对象

3exception对象

jsp原理 



指令标识

html

java代码

out内置对象,直接拿过来用 

定义:

<%里面调用方法%>输出,
<%!定义方法%>成员变量的操作

输出

<%="page范围:"+str1 %>

注释

1JSP提供了隐藏注释:

<%-- 注释内容 --%>:,隐藏注释不仅在浏览器页面中看不到,在查看HTML源代码时也看不到

2动态注释,网页看不到,只能看源码

<!-- <%=new Date()%> -->显示如下

  • 这是因为Tomcat编译JSP文件时,会将HTML注释当成普通文本发送到客户端,而JSP页面中格式为“<%-- 注释信息 --%>”的内容则会被忽略,不会发送到客户端

指令

1page指令,描述属性

languagecontentTypepageEncodingimport属性设置

例如:

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

session属性的值为true。需要注意的是,JSP 容器自动导入以下4个包:

java.lang.*

javax.servlet.*

javax.servlet.jsp.*

                                                           javax.servlet.http.*

2include指令,显示的是其他jsp页面,

显示的是这个界面,但是内容是跳转的内容

        <%@ include file="被包含的文件地址"%>

由于被包含的文件最终会生成一个文件,所以在被包含文件、包含文件中不能有重复的变量名或方法

这里的file属性指定的相对路径是相对于文件(file),插入文件的路径一般不以“/”开头,而是使用相对路径

taglib指令

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

prefix:用于指定标签的前缀,该前缀不能命名为jspjspxjavasunservletsunw

uri:用于指定标签库文件的存放位置

jsp动作元素

1包含文件元素<jsp:include>

多个文件到我这个文件里要都先编译

page相对路径,<jsp:include page="URL" flush="true|false" />

page:用于指定被引入文件的相对路径。例如,指定属性值为top.jsp,则表示将当前JSP文件相同文件夹下的top.jsp文件引入到当前JSP页面中。

flush:用于指定是否将当前页面的输出内容刷新到客户端,默认情况下,flush属性的值为false

  •  flush="true"的本界面先出来

如果你希望在被包含的页面内容之前输出当前页面的所有内容,那么你可以使用 flush="true"。如果你希望在被包含的页面内容之后或者某个特定时间点刷新输出缓冲区,那么你可以使用 flush="false"

注意<jsp:include>动作元素对包含的动态文件和静态文件的处理方式是不同的,如果被包含的是静态文件,则包含页面执行后,在使用了<jsp:include>动作元素的位置将会输出被包含文件的内容

如果<jsp:include>动作元素包含的是一个动态文件,那么JSP编译器将编译并执行被包含文件。

  • *****include指令与 <jsp:include>动作元素不同原因

include指令通过file属性指定被包含的文件,file属性不支持任何表达式;include指令只编译一次

<jsp:include>动作元素通过page属性指定被包含的文件支持JSP表达式;页面一包括了页面二,先编译页面二,包含在页面一,在编译页面一

2请求转发元素<jsp:forward>

<jsp:forward page="welcome.jsp" />跳转到welcome.jsp页面
  • page属性用于指定请求转发到的资源的相对路径,该路径的目标文件必须是当前应用中的内部资源

JSP隐式对象

9个内置对象

名称

类型

描述

out

javax.servlet.jspJspWriter

用于页面输出

request

javax.servlet.http.HttpServletRequest

得到用户请求信息

response

javax.servlet.http.HttpServletResponse

服务器向客户端的回应信息

config

javax.servlet.ServletConfig

服务器配置,可以取得初始化参数

session

javax.servlet.http.HttpSession

用来保存用户的信息

application

javax.servlet.ServletContext

所有用户的共享信息

page

java.lang.Object

指当前页面转换后的Servlet类的实例

pageContext

javax.servlet.jsp.PageContext

JSP的页面容器

exception

java.lang.Throwable

表示JSP页面所发生的异常,在错误页中才起作用

1out对象

out先写到缓存区里面

 getWriter()才是直接返回到页面上

  • 一般是有缓存的,除非设置buffer="0kb",所以一般是 getWriter()输出的先显示

原理

2pageContext对象

通过pageContext可以获得其他8个隐式对象,和设置属性

获取对象

都可以

pageContext操作属性的相关方

方法名

功能描述

void setAttribute(String name,Object value,int scope)

用于设置pageContext对象的属性

Object getAttribute(String name,int scope)

用于获取pageContext对象的属性

void removeAttribute(String name,int scope)

用于删除指定范围内名称为name的属性

void removeAttribute(String name)

用于删除所有范围内名称为name的属性

Object findAttribute(String name)

用于从4个域对象中查找名称为name的属性

属性:

void setAttribute(String name,Object value,int scope)

scope范围如下

pageContext.PAGE_SCOPE:表示页面范围。

pageContext.REQUEST_SCOPE:表示请求范围。

pageContext.SESSION_SCOPE:表示会话范围。

pageContext.APPLICATION_SCOPE:表示Web应用程序范围。

  • 要注意的是,当调用findAttribute()方法查找名称为name的属性时,会按照pagerequestsessionapplication的顺序依次进行查找,如果找到,则返回属性的名称,否则返回null

为什么第二个不谢request----可能是request对象的方法

3exception对象

  • 使用属性
  • 前提:exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@ page isErrorPage="true"%>的页面。
  • 1处理错误页面的jsp" 要设置<%@isErrorPage="true%>才可以获取错误对象<%=exception.getMessage()%><br />
  • 输出错误内容
  • 2错误页面要设置<%@errorPage="error.jsp"%>

 注册页面

写了引用就行

中间写主题输入框就行了

jsp原理 

JSP容器执行jspService()方法处理客户端的请求。对于每一个请求,JSP容器都会创建一个新的线程来处理它。如果多个客户端同时请求该JSP文件,则JSP容器会创建多个线程,使得每一个客户端请求都对应一个线程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值