JavaWeb基础学习笔记

时间:2022-09-14 00:19:17

JavaWeb基础学习笔记

什么是JSP

JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(.htm,.html)中插入 Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。



JSP的基础语法

JSP页面的构成元素

JavaWeb基础学习笔记


JSP页面的生命周期

JavaWeb基础学习笔记


脚本

格式:<% 代码片段 %>
代码片段中可写任意java代码,可定义变量、方法、表达式。
例:

out.println("Your IP address is " + request.getRemoteAddr());

声明

格式:<%! 声明 %>
代码片段中可写任意的java声明:声明变量、方法。
例:

<%! int i = 0;%>
<%! int a, b, c;%>
<%! Cicle a = new Circle(2,0);%>

表达式

格式:<%=表达式%>
表达式中的值会被转化成String,然后在插入HTML中。
例:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test</title>
</head>
<body>
<p>
今天的日期是: <%= (new java.util.Date()).toLocaleString()%>
</p>
</body>
</html>
今天的日期是: 2017-1-30 12:03:07

注释

Jsp中有三种注释方法:
第一种:

<!-- --> 

这是HTML的注释,注释的内容可以在浏览器中查看

第二种:

<%-- 代码片段 --%>

这是jsp注释,注释的内容无法在浏览器中查看

第三种:

<% 
//String s = new String();

/*for(int i = 0; i < 10; i++){
out.println("这是第"+i+"行");
}*/
%>

这是java代码注释。



JSP内置对象

什么是内置对象

jsp内置对象是Web容器创建的一组对象,不能使用new关键字,就能直接使用的对象。

<%
int [] value = {60, 70, 80};
for(int i: value){
out.println(i);//out是常用的内置对象之一
}
%>

九种JSP内置对象

JavaWeb基础学习笔记

常用的内置对象共有5种

  • out
  • request
  • response
  • session
  • application
内置对象——out

JavaWeb基础学习笔记

内置对象——request

JavaWeb基础学习笔记
JavaWeb基础学习笔记

内置对象——response

JavaWeb基础学习笔记

内置对象——session

JavaWeb基础学习笔记
JavaWeb基础学习笔记

生命周期:

JavaWeb基础学习笔记JavaWeb基础学习笔记JavaWeb基础学习笔记
Session生命周期的设置方法:
JavaWeb基础学习笔记

内置对象——application

JavaWeb基础学习笔记
JavaWeb基础学习笔记

其他4类非常用内置对象

  • page
  • pageContext
  • exception
  • config

内置对象——page
JavaWeb基础学习笔记

内置对象——pageContext
JavaWeb基础学习笔记
JavaWeb基础学习笔记

内置对象——config
JavaWeb基础学习笔记

内置对象——exception
JavaWeb基础学习笔记

Tip:
处理错误的页面中的page指令中必须表明该页面是错误处理页面,即:page中必须有属性:isErrorPage=”ture”。出现错误的页面中的page指令中必须有errorPage=”xxx.jsp”表示:当前页面出现异常之后,交给哪个页面处理异常。
如下图:
JavaWeb基础学习笔记
JavaWeb基础学习笔记

内置对象的作用域分为四类:

名称 作用域
page 仅在当前页面有效
request 仅在当前请求有效
session 仅在当前会话有效
application 在所有web程序(服务器)中有效
内置对象 名称 Java 类 作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page


JavaBean

什么是JavaBean

JavaWeb基础学习笔记


JavaBean的设计原则

JavaWeb基础学习笔记


JavaBean与Jsp动作标签

什么是Jsp动作标签

JavaWeb基础学习笔记

使用Jsp动作标签调用JavaBean

JavaWeb基础学习笔记

  • useBean

JavaWeb基础学习笔记
JavaWeb基础学习笔记
- 在作用范围内,如果之后使用的usebean的id已在作用范围内存在,则表示直接使用之前建立的对象。
- 除了使用jsp:useBean再次调用范围内已存在的javabean,还可以使用内置对象如application.getAttribute(“Javabean id”),获取javabean对象(不过需要类型转换)。
- 点击一次超链接相当于一次重定向,request会新建,上一个request范围的对象就无法调用了。
- setProperty

JavaWeb基础学习笔记
- 第一个:property = “*”:与提交过来的表单相对应,对应的input name写入数据到javabean,例如:input name=“username”,则javabean中的私有属性username就会等于input中的数据。(全部匹配)。
- 第二个:property = “javabean属性”:与表单中的部分属性匹配。
- 第三个:给javabean属性value的值。
- 第四个:param中的属性名除了是表单还可以是URL传参。
- getProperty

JavaWeb基础学习笔记



JSP的状态管理

保存用户状态的两大机制:
1. Session:将用户数据保存在服务器。
2. Cookie:将用户数据保存在本地Cookie,用于不重要或非隐私的数据。
- 两者都是时间限制,即有效期


Session

服务器为不同的客户端在内存中创建了用于保存数据的Session对象,并将用于标识该对象的唯一Id发回给与该对象对应的客户端。当浏览器再次发送请求时,SessionId也会被发送过来,服务器凭借这个唯一Id找到与之对应的Session对象。在服务器端维护的这些用于保存与不同客户端交互时的数据的对象叫做Session。


Cookie:中文名称为“小甜点”,是web服务器保存在客户端的一系列文本信息。
作用:
1. 对特定对象的追踪;
2. 保存用户网页浏览记录与习惯;
3. 简化登录;
安全风险:容易泄露用户信息;

典型应用一:判断注册用户是否已登录网站。
典型应用二:“购物车”的处理。

jsp中创建与使用Cookie:
1. 创建Cookie对象:
Cookie cookie=new Cookie(String key,Object value);
2. 写入Cookie:
response.addCookie(cookie);
3. 读取Cookie:
Cookie[] cookies=request.getCookies();
JavaWeb基础学习笔记
Note:在cookie中保存中文字符串
1. 使用request.setCharacterEncoding(“utf-8”);
2. 需要使用 URLencoder 工具类中的encode(String, 编码名)方法编码。
3. 使用URLencoder类中的decode(String, 编码名)方法解码。
4. JavaWeb基础学习笔记

Session和Cookie的对比

JavaWeb基础学习笔记


JSP指令与动作元素

include指令

语法:
<%@ include file = "URL" %>


include动作

语法:

<jsp:include page="URL" flush ="true| false" />

include指令include动作的区别

JavaWeb基础学习笔记

  • 指令:两个页面的源代码一起放置到一起,因此只有一个servlet
  • 动作:包含页面将被包含页面输出打印到自己页面上,因此有两个servlet。

jsp:forward 动作

语法:

<jsp:forward page = "URL"/>
等同于:
request.getRequestDispatcher("/URL").forward(request,response);

jsp:param 动作

<jsp:param name = "参数名" value = "参数值">

Tip:常常与<jsp:forward>一起使用,作为其子标签。
JavaWeb基础学习笔记