JSP基本语法
JSP脚本元素:JSP Scriptlets、JSP 声明语句、JSP表达式
1、代码段:JSP Scriptlets
2、JSP声明语句:<%!xxxxxxxx %>
3、JSP表达式:<%= expression %>
JSP注释:<%–xxxx–%>
JSP指令:page、include.
JSP隐式对象:
out对象:
向客户端发送文本内容。
pageContext对象:
在JSP中,使用它可以获取JSP的其他8个隐式对象。
它的作用范围有4个值:
1、pageContext.PAGE_SCOPE: 表示页面范围
2、pageContext.REQUEST_SCOPE: 表示请求范围
3、pageContext.SESSION_SCOPE: 表示会话范围
4、pageContext.APPLICATION_SCOPE: 表示web应用程序范围
原文链接:https://blog.csdn.net/m0_55689456/article/details/121376875JavaBean是java开发语言中一个可以重复利用的软件组织,它本质就是一个java类。
编码规范:
1.必须具有一个公共的无参的构造方法,这个方法可以是编译器自动产生的默认构造方法
2.提供公共的setter方法和getter方法,让外部程序设置和获取javaBean的属性
例子:
package chapter07;
public class Book {
private double price;
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price=price;
}
}
JavaBean的属性
Javabean中的属性和成员变量不是一个概念,它是以方法定义的形式出现,方法必须遵循一定的命名规范,列如在Javabean中包含一个String类型的属性name,那么在Javabean中至少包含getName()和SetName()方法中的一个,方法如下所示:
public String getName(){
}
public void setName(String name){
}
javaBean属性有一个例外情况。如果属性的类型为boolean类型的属性married,该属性所对应的方法声明如下:
public boolean isMarried(){
}
public void setMarried(boolean married)(
)
例子:
package cn.itcast.chaptr07.javabean;
public class Student {
private String id;
private String name;
private int age;
private boolean married;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age=age;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married=married;
}
public String getID() {
return id;
}
public void setName(String name) {
this.name=name;
}
public void getInfo() {
System.out.println(“我是一个学生”);
}
}
BeanUtils工具
需要下载commons-beanutils-1.9.2.jar,commons-logging-1.2.jar并解压到项目的lib目录下
创建一个Person类用于提供外界访问
package cn.itcast.chapter07.beanutils;
public class Person {
private String name;
private int age;
private String getName() {
return name;
}
public void setName(String name) {
this.name=name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age=age;
}
}
创建一个BeanUtilsDemo类,在类中使用BeanUtils类的常用方法
package cn.itcast.chapter07.beanutils;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class BeanUtilsDemo {
public static void main(String[] args) throws Exception{
Person p=new Person();
BeanUtils.setProperty(p, “name”, “Jack”);
BeanUtils.setProperty(p,“age”,10);
String name=BeanUtils.getProperty(p,“name”);
String age=BeanUtils.getProperty(p,“age”);
System.out.println(“我的名字叫” + name + “我今年” + age + “岁了!”);
Map<String, Object>map=new HashMap<String, Object>();
map.put(“name”,“张三”);
map.put(“age”, 10);
BeanUtils.populate(p, map);
System.out.println(“姓名:” + p.getName() + “,年龄” + p.getAge());
}
}
El表达式
在jsp开发中。为了获取Servlet域对象中储存的数据,经常需要书写很多java代码,这样的做法会使jsp页面混乱,难以维护为此,在jsp2.0规范中提供了EL表达式。
创建一个存储用户名和密码的类MyServlet
package cn.itacst.chapter07.servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class myservlet {
public void deoGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
request.setAttribute(“username”, “liujie”);
request.setAttribute(“password”, “123”);
RequestDispatcher dispatcher=request.getRequestDispatcher("/myjsp.jsp");
dispatcher.forward(request, response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
deoGet(request,response);
}
}
编写了一个名为myjsp.jsp文件用来输出MyServlet所存储的信息
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
2020080605038 陶峰
用户名:<%=request.getAttribute(“username”) %>
密码:<%=request.getAttribute(“password”) %>
使用EL表达式:
用户名:
u
s
e
r
n
a
m
e
密
码
:
{username} 密码:
username密码:{password}
:
EL隐式对象
EL表达式中定义了11个隐式对象,使用这些隐式对象可以很方便地读取到Cookie、HTTP请求消息头字段、请求参数、
Web应用程序中的初始化参数的信息,EL表达式中的隐式对象具体如下:
隐式对象 作用
pageContext 对应于JSP页面中的pageContext对象
pageScope 代表page域中用于保存属性的Map对象
requestScope 代表request域中用于保存属性的Map对象
sessionScope 代表session域中用于保存属性的Map对象
applicationScope 代表application域中用于保存属性的Map对象
param 表示一个保存了所有请求参数的Map对象
paramValues 表示一个保存了所有请求参数的Map对象,它对于某个请求参数, 返回的是一个string类型数组
header 表示一个保存了所有http请求头字段的Map对象
headerValues 表示一个保存了所有http请求头字段的Map对象,返回string类型数组
cookie 表示一个保存了所有cookie的Map对象
initParam 表示一个保存了所有web应用初始化参数的map对象
pageContext对象
EL表达式中的pageContext隐式对象与JSP页面中的pageContext对象相对应,EL表达式可以通过pageContext隐式
对象访问其它JSP隐式对象,如访问request、response对象属性时,可以使
表达式:
${pageContext.response.characterEncoding}
1
例子:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
请求URI为:
p
a
g
e
C
o
n
t
e
x
t
.
r
e
q
u
e
s
t
.
r
e
q
u
e
s
t
U
R
I
C
o
n
t
e
x
t
−
T
y
p
e
响
应
头
:
{pageContext.request.requestURI} Context-Type响应头:
pageContext.request.requestURIContext−Type响应头:{pageContext.response.contentType}
服务器信息为:
p
a
g
e
C
o
n
t
e
x
t
.
s
e
r
v
l
e
t
C
o
n
t
e
x
t
.
s
e
r
v
e
r
I
n
f
o
S
e
r
v
l
e
t
注
册
名
为
:
{pageContext.servletContext.serverInfo} Servlet注册名为:
pageContext.servletContext.serverInfoServlet注册名为:{pageContext.servletConfig.servletName}
web域相关对象
例子:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<% pageContext.setAttribute(“page”,“PAGE”); request.setAttribute(“dashuju”,“REQUEST”); session.setAttribute(“session”,“SESSION”); application.setAttribute(“app1”, “APPLICATION”); %>
表达式
p
a
g
e
S
c
o
p
e
.
p
a
g
e
的
值
为
:
{pageScope.page}的值为:
pageScope.page的值为:{pageScope.page}
表达式 r e q u e s t S c o p e . d a s h u j u 的 值 为 : {requestScope.dashuju}的值为: requestScope.dashuju的值为:{requestScope.dashuju}
表达式 s e s s i o n S c o p e . s e s s i o n 的 值 为 : {sessionScope.session}的值为: sessionScope.session的值为:{sessionScope.session}
表达式 a p p l i c a t i o n S c o p e . a p p 1 的 值 为 : {applicationScope.app1}的值为: applicationScope.app1的值为:{applicationScope.app1}
:
param和paramValues对象
例子
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
num1:
num2:
num3:
num1:
p
a
r
a
m
.
n
u
m
1
n
u
m
2
:
{param.num1} num2:
param.num1num2:{paramValues.num[0]}
num3:${paramValues.num[1]}
:
cookie对象
例子:
<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>
<% response.addCookie(new Cookie(“username”,“陶峰”)); %> 获取Cookie对象
c
o
o
k
i
e
.
u
s
e
r
n
a
m
e
获
取
C
o
o
k
i
e
对
象
名
字
{cookie.username } 获取Cookie对象名字
cookie.username获取Cookie对象名字{cookie.username.name}
获取Cookie对象值${cookie.username.value } 1.3.2 JavaScript 概述
JavaScrpt是Web中一种功能强大的脚本语言, 常用来为网页添加各式各样的动态功能,
它不需要进行编译,直接嵌入在HTML页面中,就可以把静态的页面转变成支持用户交互并响应
事件的动态页面。
JavaScript的引入
在HTML文档中,较为常用的引入JavaScript的方式有两种,一种是在HTML文档中直接嵌入
JavaScript脚本,称为内嵌式;另一种是链接外部 JavaScript脚本文件,称为外链式。具体介绍如下。
(1)内嵌式
在HTML文档中,通过标签及其相关属性可以引入JavaSript代码。当
浏览器读取到