博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP和JavaBean
阅读量:4919 次
发布时间:2019-06-11

本文共 4623 字,大约阅读时间需要 15 分钟。

JSP

JSP全称是Java Server Pages。JSP实际上就是Servlet。

JSP原理:JSP会被Tomcat翻译成一个Servlet

JSP语法

1)JSP的Java脚本表达式

作用:输出数据到页面上

语法:<%=表达式%>

2)JSP的Java脚本片段(实际开发中,应做到JSP中不能出现一行Java脚本片段)

作用:书写Java代码逻辑

语法:<%

                   语句1;

                   语句2;

           %>

原理:其中的语句会原封不动的被服务器翻译到对应的Servlet的service方法中。

3)JSP的声明

作用:定义类的成员

语法:<%!

                   Java代码

      %>

4)JSP的注释:

作用:注释Java脚本代码

语法:<%--这是注释--%>

 

JSP的指令给JSP引擎用的(服务器用的)

基本语法格式:<%@ 指令名称 属性1="值1" 属性2="值2" %>

作用:告诉服务器,该如何处理JSP中除了指令之外的内容。

1.page

作用:定义JSP页面的各种属性

属性:language:指示JSP页面中使用脚本语言

extends:指示JSP对应的Servlet类的父类。不要修改

import:导入JSP中的Java脚本使用到的类或包。

            JSP引擎自动导入以下包中的类:

            javax.servlet.*

            javax.servlet.http.*

            javax.servlet.jsp.*

主要:一个import属性可以导入多个包,用逗号分隔。

session:指示JSP页面是否创建HttpSession对象。默认值是true,创建

buffer:指示JSP用的输出流的缓存大小。默认值是8KB.

autoFlush:自动刷新输出流的缓存

isThreadSafe:指示页面是否是线程安全的(过时的)。默认是true(true不安全。)

errorPage:指示当前页面出错后转向的页面

                    目标页面如果以"/"(当前应用)就是绝对路径。

配置全局错误提示页面:

web.xml

java.lang.Exception
/error.jsp
404
/404.jsp

eg:

1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="/error.jsp"%>              
<% int i = 100/0; %>

error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>              

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

对不起!服务器忙!

isErrorPage:指示当前页面是否产生Exception对象。

contentType:指定当前页面的MIME类型。作用与Servlet中的response.setContentType()作                               用完全一致

pageEncoding:通知引擎读取JSP时采用的编码(因为要翻译)

                            还有contentType属性的作用。

isELIgnored:是否忽略EL表达式。${1+1}。默认值是false。

 

2.include(静态包含:开发中能用静的不用动的)

作用:包含其他的组件。

语法:<%include file=""%>file指定要包含的目标组件。路径如果以"/"(当前应用)就是绝对路径。

原理:把目标组件的内容加到源组件中,输出结果。

动态包含:采用动作元素:<jsp:include page=""/>路径如果以"/"(当前应用)就是绝对路。

3.taglib

作用:引入外部的标签

语法:<%@taglib uri="标签名称空间" prefix="前缀"%>

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

 

JSP内置对象(9个JSP内置对象)

JSP的内置对象引用名称                                  对象的类型

request                                                     HttpServletRequest

response                                                   HttpServletResponse

session                                                     HttpSession

application                                                 ServletContext

config                                                       ServletConfig

page                                                         this(当前Servlet对象)

exception                                                  java.lang.Throwable

out                                                           JspWriter

pageContext                                              javax.servlet.jsp.PageContext

 

pageContex详解

1.本身是一个域对象。

同时还能操作其他三个域对象(pageContext、ServletRequest、HttpSession、ServletContext)

本身表示的域范围是本页面

void setAttribute(String name,Object value)

void removeAttribute(String name)

Object getAttribute(String name)

操作其他三个域对象

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

void removeAttribute(String name,int scope)

Object getAttribute(String name,int scope)

 

参数int scope是由PageContext类提供的静态变量规定的。

PageContext.PAGE_SCOPE:页面范围(是PageContext本身中的那个Map,代号page)

PageContext.REQUEST_SCOPE:请求范围(是ServletRequest中的那个Map,代号request)

PageContext.SESSION_SCOPE:请求范围(是HttpSession中的那个Map,代号session)

PageContext.APPLICATION_SCOPE:请求范围(是ServletContext中的那个Map,代号application)

 

Object findAttribute(String name):依次按照page request session application范围搜索指定名称的对象,找到为止。

2、获取其他8个隐式对象

3、提供了转发和包含的方便方法

方法一(转发):

RequestDispatcher rd = request.getRequestDispatcher("/url");

rd.forward(request,response);                 

方法二(转发):

pageContext.forward("url");

包含:

pageContext.include("url");

 

四大域对象(两个资源之间互传数据)

JSP中隐式对象的名称            范围名称                            具体的类型

pageContext                     page                                 javax.servlet.jsp.PageContext

request                            request                             javax.servlet.ServletRequest

session                            session                              javax.servlet.http.HttpSession

application                        application                         javax.servlet.ServletContext

 

JSP常用的动作元素

<jsp:include/>

<jsp:forward/>

<jsp:param/>:在包含和转发时,利用该标签传递请求参数

 

JavaBean

JavaBean是一个遵循特殊写法的普通类

特殊写法:

1)必须有默认的构造方法

2)所有字段为私有的

3)提供共有的getter或setter

4)一般实现java.io.Serializable

应用场景:在企业级开发中,JavaBean是用来传递数据的。

 

JSP中操作JavaBean的动作元素

jsp:useBean

作用:用于在指定域范围内查找指定名称的JavaBean对象,找到了就直接使用;没有找到,创建一个,并放到指定的域范围内。

属性:

         id:必须的。

         class:JavaBean的完整类名

         scope:域范围。默认是page范围。可选值:page、request、session、application

注意:如果该标签有主体内容,只有创建新对象时才会执行。

jsp:setProperty(必须先使用useBean)

作用:调用JavaBean的setter方法。还能自动类型转换,仅限基本类型

属性:

         property:必须的。属性名称。

                            可以使用通配符*。使用前提是请求参数的名称与属性的名称完全一致。

         name:必须的。哪个对象的?即jsp:useBean中的id的取值。

         value:属性的取值。

         param:请求参数名

jsp:getProperty

作用:调用JavaBean的getter方法。

property:必须的。属性的名称

name: 必须的。哪个对象的?即jsp:useBean中的id的取值。

 eg:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>          

利用请求参数名设置JavaBean的各种属性

 

转载于:https://www.cnblogs.com/EvanLiu/p/3723611.html

你可能感兴趣的文章
例子:进度条
查看>>
包含单引号的sql
查看>>
HTML 基础 2
查看>>
Java 最常见 200+ 面试题全解析:面试必备(转载)
查看>>
LinkedList
查看>>
Spring框架下PropertyPlaceholderConfigurer类配置roperties文件
查看>>
SQL查询优化
查看>>
使用子查询
查看>>
SD卡调试关键点
查看>>
Hadoop HBase Phoenix 版本
查看>>
深入Java集合学习系列:ConcurrentHashSet简单实现
查看>>
[原创]独立模式安装Hive
查看>>
Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
查看>>
LeetCode My Solution: Minimum Depth of Binary Tree
查看>>
Objective-C中的Category(分类)
查看>>
浅谈python可迭代对象,迭代器
查看>>
python 多分类任务中按照类别分层采样
查看>>
Java(23)_ String类常用方法
查看>>
IOS开发网络篇—XML介绍
查看>>
Spider-four
查看>>