java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
JSP学习笔记
1.什么是jsp
JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。JSP/Servlet规范。JSP实际上就是Servlet。
JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
2.JSP概述
JSP=HTML+Java
Servlet:控制业务逻辑
JSP:显示
动态资源生成静态资源的,用户看到的永远都是静态资源,即看到的都是动态资源生成的结果。
学好JSP的关键:在写JSP的某部分内容时,一定要知道他在Servlet中的位置。
3.JSP基本语法
1、JSP模版元素:就是JSP中的HTML的内容。界面展示。(美工)建议先把模板弄好。
2、JSP脚本表达式 :
作用:把某个变量的值输出到页面上。(等同于out.write())
语法:<%=表达式%> 当前时间:<%= new java.util.Date() %>
JSP脚本表达式中的变量或表达式后面不能有分号(;)
没有返回值的就不用写=
3、JSP的脚本片段:
作用:书写java逻辑
语法:<%
语句1;
语句2;
%>
4、JSP声明
<%! %>
作用:定义JSP对应的Servlet的成员变量或方法
语法:
<%!
private int age = 100;
public void m(){
}
static{
}
%>
5、 JSP注释
语法:<%--这是注释--%>
结果:被注释的代码,服务器根本不翻译。
实际开发中:除了下面要讲的指令。JSP中不能出现一行<%%>
4. JSP的指令:
作用:给服务器用的。
语法:<%@ page|taglib|include 属性1="值1" ...%>
1、page:
language:指定JSP中使用的脚本的语言。默认值java,目前只支持java。
*import:导入jsp中使用的类或包。作用和java中的import完全一样。
import="java.io.InputStream,java.util.Date"
*session:指示是否创建HttpSession对象。默认是true,创建。
buffer:指示输出字符流的缓存大小。默认是8kb。
*errorPage:指定出错时,转发到哪里去。取值就是一个uri地址。如果以"/"开头,它就代表当前应用。
配置全局错误提示页面:(不是转发)
web.xml
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
<error-page>
<!-- 错误响应码 -->
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
*isErrorPage:指示是否产生exception对象。true是产生。默认值是false
*contentType:通知HttpServletResponse输出时响应正文的MIME类型和编码。作用和response.setContextType="text/html;charset=UTF-8"一样
*pageEncoding:指示从磁盘上读取jsp文件时查的码表。
1、指示服务器读磁盘上的文件用的编码
2、同时制定contentType使用的编码
*isELIgnored:默认是false。指示是否忽略EL表达式。
2、taglib:引入外部定义的标签(重点)
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3、include:实现包含(静态包含)
静态包含:2个页面对应一个Servlet
动态包含:2个页面分别对应一个Servlet。
5.JSP常用动作元素(jsp内置的标签)
jsp:include:动态包含
jsp:forward
jsp:param
6.JSP中的9个隐式对象(JSP对应的service中生成的那些局部变量)
JSP隐式对象名称类型
requestjavax.servlet.http.HttpServletRequest(域对象)
responsejavax.servlet.http.HttpServletResponse
sessionjavax.servlet.HttpSession(域对象)
applicationjavax.servlet.ServletContext(域对象)
configjavax.servlet.ServletConfig
page当前JSP对应的Servlet的实例
exceptionjava.lang.Throwable
outjavax.servlet.jsp.JspWriter(和response.getWriter()作用完全
pageContextjavax.servlet.jsp.PageContext(用JSP时很重要)
pageContext三大作用:
1、本身是一个域对象,还能操作其他三个域对象中的数据 域对象:范围是当前页面。
操作其他三个域对象中的数据:scope是一个常量:
PAGE_SCOPE(页面范围PageContext)
REQUEST_SCOPE(请求范围ServletRequest)
SESSION_SCOPE(会话范围HttpSession)
APPLICATION_SCOPE(应用范围ServletContext)
void setAttribute(String key,Object value,int scope)
void removeAttribute(String key,int scope)
Object getAttribute(String key,int scope)
查找方法:
Object findAttribute(String key):依次从
PageContext\ServletRequest\HttpSession\ServletContext中查找,找到为止。
2、获取其他八个隐式对象:用在普通类中。
3、提供了转发和包含的简易方法
pageContext.forward("/scope/2.jsp");
pageContext.include("");
7.四大域对象总结
表示的范围Map在哪个类中PageContext中的常量备注
pagePageContext:MapPAGE_SCOPE开发几乎不用:练习时用一下
requestServletRequest:MapREQUEST_SCOPE限转发,用完数据就没了
sessionHttpSession:MapSESSION_SCOPE多次使用 范围内
applicationServletContext:MapAPPLICATION_SCOPE用得少:同步处理
java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象的更多相关文章
- JSP学习笔记(二):动作元素
与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用.JSP动作元素是用XML语法写成的. 利用JSP动作可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页面.为Java插件 ...
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...
- java web Servlet学习笔记-2 请求重定向和请求转发的区别
请求转发与请求重定向的区别 请求重定向和转发 1.请求重定向:浏览器的行为(通过响应对象HttpServletResponse来执行) 特点:可以重新定向访问其他Web应用下的资源 浏览器发出了2次请 ...
- java Web Servlet学习笔记-1 HttpServletQequest对象的学习
HttpServletQequest对象的学习 HttpServletRequest HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求 ...
- java web(学习笔记)项目路径问题
最近刚接触java web特别是是关于项目路径这一块很晕,就把自己遇到的一些疑惑和理解写下来. 首先贴上路径,这里用的是eclipse. 其中我们要注意看WebContent目录,这是web程序的根目 ...
- java web Servlet 学习笔记 -3 会话管理技术
Cookie和HttpSession 什么是会话: 用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 每个用户在使用浏览器与服务器进行会话的过 ...
- Android开发学习笔记:浅谈显示Intent和隐式Intent
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liangruijun.blog.51cto.com/3061169/655132 ...
- Java Web Service 学习笔记
一.服务端 1. 创建Java工程 2. 创建接口HostipalServiceInterface package ws_server; import javax.jws.WebMethod; imp ...
- Scala学习笔记(七):Rational、隐式转换、偏函数、闭包、重复参数及柯里化
class Rational(n: Int, d: Int) { require(d != 0) private val g: Int = gcd(n, d) val number: Int = n ...
随机推荐
- HTML转义字符串
HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,> ...
- sublime text3 3143 注册码
sublime text3 3143 注册码,可用~ Sublime Text一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制.相比于难于上手的Vi ...
- Spring 对缓存的抽象
Cache vs. Buffer A buffer is used traditionally as an intermediate temporary store for data between ...
- Linux cat /proc/meminfo 输出分析
$cat /proc/meminfoMemTotal: 2052440 kB //总内存MemFree: 50004 kB //空闲内存Buffers: ...
- 1~N任意三个数最大的最小公倍数(Java版)
最大最小公倍数 如题 话不多说,直接上代码 public class MaxCommonMultiple{ public static void main(String[] args) { Scann ...
- 201521123020 《Java程序设计》第7周学习总结
1. 本周学习总结 2. 书面作业 1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 public boolean contains(Object o) { re ...
- MD格式示例
一个例子: 例子开始 1. 本章学习总结 今天主要学习了三个知识点 封装 继承 多态 2. 书面作业 Q1. java HelloWorld命令中,HelloWorld这个参数是什么含义? 今天学了一 ...
- AJAX多级下拉联动【JSON】
前言 前面我们已经使用过了XML作为数据载体在AJAX中与服务器进行交互.当时候我们的案例是二级联动,使用Servlet进行控制 这次我们使用JSON作为数据载体在AJAX与服务器交互,使用三级联动, ...
- Oracle SQL*Plus 数据备份为 sql 文件
在某些比较严格的环境中,不提供像PL/SQL Developer 这样的工具供我们备份表数据时,使用SQL*Plus运行如下脚本内容导出数据. 1, 执行时登录SQL*Plus, 命令 @D: ...
- redis 基础学习总结
背景:因为项目用到了redis,加上之前一直听说了redis,但一直没有用过,正好项目现在要用到了,抽时间简单学习了下,做个记录总结下. 一 .Redis简介 介绍Redis之前,先了解下NoSQL ...