一、JSP的概念;其实就是Servlet,只不过Servlet如果大量写入表现层语言会很难维护,因此会引入JSP。JSP其实两个部分:
(1)、HTML
(2)、JAVA
二、JSP原理:Web服务器接收.jsp文件请求时,会把JSP文件语法交给JSP引擎处理。Tomcat中的JSP引擎其实就是一个Servlet小程序。每一个JSP页面在第一次访问的时候,JSP引擎会把JSP页面翻译成一段小Servlet的源程序。接着再把这个Servlet源程序编程成相对应的class程序。
三、JSP中,一般以下语法放入Java代码:
(1)、<% %> 放入Java代码
(2)、<%! %> 变量与函数的声明
(3)、<%= %> 表达式写法
(4)、<%-- --%> JSP注释
四、JSP 三大指令:
1、page指令
Page指令:
page指令通常位于JSP的头部,注意一个JSP页面可以包含一个或者多个page指令
<%@ page
[language="Java"]
[extend="package.class"]
[import="package.class|package.*|..."]
[session="true|false"]
[buffer="none|8KB|..."]
[autoFlush="true|false"]
[isThreadSafe="true|false"]
[info="text"]
[contentType="mineType;charset="UTF-8"]
[pageEncoding="ISO-8859-1"]
[isErrorPage="true|false"]
[errorPage="error.jsp"]
%>
language: 声明当前JSP页面使用的脚本语言种类,通常是java。默认值也是java。
extends: 指定JSP页面编译所产生Java类所去继承的类。
import: 通常用来导入包。有几个包是默认自动导入的:
java.lang.*,java.servlet.*,java.jsp.* ...;
session: 设置当前页面是否需要HTTP Session。
buffer: 设置当前的缓存大小。默认值为8KB。可以设置none。
autoFlush: 当前输入缓冲区即将溢出的时候,是否需要抛出一个溢出异常。
info: 设置该JSP页面的信息。
errorPage: 指定错误处理的页面。
isErrorPage: 设置本JSP页面是否需要错误页面。通常情况下是无序指定。
contentType: 用于生成网页的文件格式以及编码。
pageEncoding: 指定生成网页的编码字符集。
2、include指令
include 指令:
使用incluce,可以将一个外部文件包含到JSP文件中,同时解析必要Java语法。注意编译指令
最好引入静态的JSP文件。什么静态引入?一旦使用编译include的静态引入本把引入的JSP融合
成一个页面。因此被包含页面设置不需要是完整的页面。
<%@include file="relativeURLFile" %>
注意:需要指出的是,静态包含还会包含页面中的编译指令,如果
两个页面的编译指令相冲突,程序报错。
五、JSP的七个动作指令
1、jsp:forward 执行页面专项,将请求处理转发到下一个页面。
2、jsp:param 用于传递参数,注意:必须和其他支持参数的标签一起使用。
3、jsp:include 用于动态引入一个JSP页面。
4、jsp:plugin 用于下载JavaBean 或者 Applet 到客户端执行。
5、jsp:useBean 创建一个JavaBean的实例。
6、jsp:setProperty: 设置JavaBean 实例的属性值。
7、jsp:getProperty: 输出JavaBean 实例的属性值。
六、JSP隐式对象
所谓对象,就是在JSP中内置好的对象,就叫隐式对象。
JSP 九大内置对象:
1、application -- javax.servlet.ServletContext。
该实例代表JSP所属的Web应用本身。
2、config -- javax.servlet.ServletConfig
该实例代表JSP所属的配置信息。
3、exception -- java.lang.Throwable
该实例代表JSP所属其他页面的异常和错误。
4、page -- 代表页面本身。也就是Servlet的this
5、out -- javax.servlet.jsp.JspWriter
该实例代表JSP的输出流
6、pageContext -- javax.servlet.jsp.PageContext
该实例代表页面的上下文
7、request -- javax.servlet.HttpServletRequest
该实例封装一个请求
8、response -- javax.servlet.HttpServletResponse
该实例代表客户端的响应
9、session -- javax.servlet.HttpSession
该实例代表一次会话
application 通过setAttribute方法设置application的某个属性,
该属性值可以作用于整个Web。因此在Web内可以使用getAttribute获取该属性。
需要指出的是:虽然使用application(即Servlet实例)可以方便多个Servlet,多个JSP
共享数据,但不要仅仅为了JSP、Servlet共享数据就将数据放入Application中!由于Application
代表了整个的Web因此,因为只有关于整个Web项目的配置信息,数据才会放入Application
application 还有一个重要的用处:可用于获取Web应用的配置参数。web.xml
注意:通过Web获取配置参数的方式,可以将一些配置信息放在web.xml文件中配置。
避免使用硬编码方式写在代码中,该种方式可以更好的程序的移植性。
config 对象:
config对象代表当前JSP页面的配置信息。但JSP页面通常无须配置。因此也就不存在配置信息。
所以JSP页面比较少用该对象。但是Servlet中则用处相对较大,因为Servelt需要在web.xml
文件中进行配置。
exception 对象:
exception对象是Throwable的实例,代表JSP脚本中产生的错误和异常。是JSP页面异常机制的
一部分。
在JSP脚本中无须处理异常。事实上,JSP脚本包含的所有的可能出现的异常都交给错误页面处理。
注意:exception 对象仅在异常处理页面中有效,通过异常处理结构可以看出。
注意:由于只有JSP脚本,输出表达式才会对应于_jspService()方法里的代码。所以这两个
部分的代码无须关心异常。但是在JSP的声明部分依然需要处理异常。
JSP异常处理机制对JSP的声明不起作用。
注意:在异常处理的页面中,应该在page指令中isErrorPage添加上并且设置为true,
只有该属性设置为true时,才可以访问exception内置对象。
七、
out: 其实就是输出流。通常用于输出变量的值。
注意:<%=> 本质等于 out.write() 输出表达式
pageContext: 该对象表示页面上下文,用于访问对象之间共享数据。
上下文:当一个页面需要访问其他页面声明的变量等参数的时候,该行为
动作就是上下文。
getAttributesScope() 返回属性范围
1 为page
2 为request
3 为session
4 为application
pageContext还可以用于其他内置对象:
1、servletRequest getRequest(): 获取request对象
2、servletResponse getRepsonse(): 获取response对象
3、servletConfig getServletConfig(): 获取config对象
4、HttpSession getSession() 获取session对象
request 对象是JSP重要的对象。每个request都会是一个用户的请求。
这个请求里面包含了所有的用户需要传递的参数。
request 重要的特性:可以操作表示一个request请求范围。
所有的web应用都会有请求与响应,没有请求与响应就没有web开发!
request和response 是HTTPRequest HTTPResponse的请求实例操作。
函数:
String getParameter("参数名") 获取提交请求的参数值。
Map getParameterMap() 获取所有请求参数和参数值的Map对象。
String[] getParameterValues("参数名") 获取提交请求的参数值的集合。
HttpServletRequest 函数:
String getHeader("参数名") 根据请求参数获取请求头。
java.util.Enumeration<String> getHeaderNames() 根据所有获取请求头名。
int getIntHeader(String name) 获取请求头并转成整数。
Get 和 Post 区别需要记牢!
注意:不是每个表单都会生成请求参数,特别是post不会生成浏览器的请求参数。
有以下几点需要考虑:
1、表单中,每个name属性都对应一个参数。
2、表单中,多个相同的name属性可以对应多个值。
3、表单中,name表示参数名,value表示参数值。
4、表单中,如果默认传值的参数,不要显示,考虑用hidden。
setCharacterEncoding("UTF-8"); 设置request字符集。
一般在web开发,只要不涉及到国际化。只需要知道2个字符集:
1、UTF-8
2、GBK
注意:request 除了可以接受参数,识别请求以外,还有一个功能就是
可以执行forward和include。也就是可以代替jsp所提供的编译指令。
response: 代表服务端的响应。基本上大部分时间服务器无须使用response。
因为可以直接使用更简单的out。out就是代表输出流。
HttpResponse
1、response 可以生成非字符串响应。
2、response 重定向。
注意:重定向 其实就相当于发送了二次请求。
重定向:sendRedict(String path)
注意:重定向会丢失所有的请求参数,使用重定向效果。
和在浏览器的地址栏重新输入没有任何区别。
从表面上看,forwar动作和redirect重定向行为有些相似。
它们都可以将请求传递到另一个页面上。但是实际还是有差异的。
forward( 转发,前进 ) redirect(重定向)
1、执行forward后依然上一次请求 1、执行redirect生成二次请求
2、forward的目标页面可以访问原来 2、redirect目标页面不能访问原来的请求参数。
的请求参数,因为依然在一个页面一次 request内参数全部丢失。
请求。所有request内参数都存在。
3、forward浏览器url不会改变 3、既然是重定向,当然会改变。
cookie/session
Cookie 时常是用来表示或者记录网站的数据。比如用户购物车。
Session 一般是存放在服务器的。用户每次访问网站的时候,
都会携带cookie,网站后台可根据携带cookie找到session。
Cookie和Session的最大不同之处在于,session会随着浏览器
的关闭而消失。Cookie会保留一段时间,具体时间看设置。
众所周知,Cookie会很大安全隐患。因此在有大部分浏览器,需要你
支持使用Cookie。
注意:增加Cookie也是repsonse内置的对象完成。
提供如下相关方法:
1、addCookie( Cookie对象 );
操作:
1、创建Cookie实例
2、设置Cookie生存周期
3、可向客户端写入Cookie
注意:使用Cookie对象必须设置生存周期,
否则随着浏览器关闭会消失。
注意:当在Cookie中设置中文的时候,需要URLEncoder 和 URLDecoder设置。
否则会报错!
session:session 是对象是一个很有用的对象,它代表了一次会话所存储的值。
会话的意思是:从客户端请求服务器开始,到客户端断开服务器位置,这个过程
就是一个完整的对象。
session对象是HttpSession的实例:
1、setAttribute("参数名","参数值");
2、getAttribute("参数名");
注意:session一般是用于存放用户需要完成的会话。比如登录成功的ID
,比如验证码等信息。
session属性值可以是任何可序列化的Java对象。
八、Servlet
Servlet:
JSP的本质就是Servlet。一般编译的流程就是把编写好的JSP页面
部署到web容器会将JSP页面编译成相对应Servlet。
但是如果需要直接使用Servlet的坏处:写前端极其麻烦。
Servlet是标准的Java类。
Servlet其实也是一个特殊类,这个类必须继承HttpServlet。
注意:每一个Servlet都可以提供不同方法用于响应客户端的请求。
*doGet 用于用户的Get请求
*doPost 用于用户的Post请求
doPut 用于用户的Put请求
doDelete 用于用户Delete请求
事实上,Get和Post在客户端才会经常用到。
如果Servlet需要响应这4种方法,可以考虑重写上述方法。
注意:大部分Servlet请求响应基本完全一样。
service()即可响应客户端的请求。
另外,HttpServlet还包含了两个方法:
1、init(ServletConfig config); 创建Servlet的时候,初始化的方法。
2、destroy(); 销毁Servlet实例时,自动调用该方法回收资源。
注意:init()和destroy()两个方法,除非在初始化一定要去完成的事情。
否则不建议重写。
Servlet和JSP的区别:
1、Servlet没有内置对象,原来JSP的内置对象通常必须根据程序创建。
2、对于静态HTML的标签,Servlet输出流必须逐个输出。
其实JSP就是Servlet的一种简化写法。
注意:普通的Servlet中的service作用就是JSP源码中的_jspService()方法。
因此原JSP页面的JSP脚本和JSP静态页面内容,在普通中的Servlet中就是service方法
中的输出片段。原JSP声明部分的,对应Sevlet中的定义成员变量或方法。
注意:@WebServlet 使用方式是Servlet3.0以后的注解方法。
目的是为了简化配置操作。
1、asyncSupported 指定该Servlet是否支持异步操作。
2、displayName 指定该 Servlet的显示名。
3、initParams 用于为这个Servlet配置参数。
4、loadOnStartup 用于将Servlet配置成load-on-start
的servlet。
5、name 指对应servlet的名称
6、urlPatterns 指Servlet处理的URL。
如果你打算使用注解配置Servlet。有以下几点需要注意:
1、不要在web.xml文件的根元素(<web-app.../>)
中指定metadata-complete="true"
2、不要在web.xml配置这个Servlet
如果你打算使用web.xml来配置Servlet。有以下几点需要注意:
1、配置Servlet的名字:对应web.xml文件中的<servlet/>元素
2、配置Servlet的URL: 对应web.xml中的<servlet-mapping/>元素
注意:servlet-mapping是可选的。也就是说如果没有配置Servlet
的URL,也不影响正常运行。
九、Servlet生命周期
load-on-startup: 通常Web启动时立即创建的Servlet。
配置 load-on-startup 的Servlet 有两种方式:
1、web.xml 文件通过<servlet></servlet>中的配置一个
<load-on-startup>子元素进行配置。
2、通过注解方式@WebServlet 指定属性load-on-startup.
注意:load-on-stratup 或者 loadOnStartup 属性只接收一个
整型值,这个整型越小,Servlet实例化的优先级越高。
Servlet的配置参数:
通常配置Servlet时候,需要额外的增加一些参数。一般是需要加入到文件中。
有以下两种方法:
1、通过web.xml中的<servlet></servlet>中的init-param
2、通过注解方式,initParams方式。
分享到:
相关推荐
"jsp课程总结" JSP(JavaServer Page)是一种基于 Java Server 以及整个 Java 体系的 Web 开发技术,能够建立动态的、高性能的、安全的、跨平台的先进动态网站。JSP 技术的核心是将 Java 代码嵌入到 HTML 页面中,...
4. **JSP动作(JSP Actions)**:如`<jsp:include>`和`<jsp:forward>`等,但示例中未使用。 5. **EL(Expression Language)**:虽然示例中未使用,但EL通常用于简化JSP页面中的数据访问。 6. **JSTL(JavaServer ...
自己总结的servlet与jsp部分 希望对大家有所帮助
### JSP知识点总结 #### 1. JSP简介 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,用于创建动态网页。它结合了HTML标记和Java代码,使得开发者可以在静态网页的基础上添加动态内容。JSP具有以下...
jsp总结代码,配置Tomcat,jsp的组成 (定义:在html中嵌入java脚本代码)
jsp基础的学习资料,适合初学者,ppt形式,可以很容易学会jsp jsp基础的学习资料,适合初学者
**JSP 学习总结** JSP(JavaServer Pages)是一种动态网页技术,它允许开发者在HTML中嵌入Java代码,以实现服务器端的程序逻辑。对于初学者来说,掌握JSP的基础知识和核心概念至关重要。 ### JSP 开发Web应用系统 ...
总结,利用JSP开发教室管理系统,我们需要结合Servlet、Java Bean、JDBC、数据库以及前端技术,实现用户交互、数据处理和业务逻辑。在实际开发过程中,还要注意安全性、性能优化以及代码规范,以构建出高效、稳定的...
jsp小结,温故而知新页面语言: 静态:html 动态:asp,php,jsp 1.jsp运行环境 动态的代码 必须有服务器来解析这些代码 2.服务器tomcat 免费服务器
**JSP知识总结1** **一、静态页面基础** 1. **HTML文档结构**:HTML文档通常由开始标记`<html>`、头部标记`<head>`、主体标记`<body>`以及结束标记`</html>`组成。 2. **排版标记**:包括标题标记如`<hn></hn>`(n...
【JSP期末概念总结】 JSP(JavaServer Pages)是一种基于Java的技术,它允许开发者在HTML页面中嵌入Java代码,以实现动态网页的创建。JSP文件在服务器上被编译成Servlet类,然后执行生成动态内容。JSP的核心在于将...
JSP(Java Server Pages)是Java技术中用于创建动态网页的一种标准,它是J2EE(Java 2 Platform, Enterprise Edition)的一部分。JSP的核心在于它能够将静态HTML内容与Java代码相结合,允许开发者在服务器端生成HTML...
使用mindmaster打开
JSP & Servlet 技术总结 JSP技术总结 2 1. JSP页面元素构成 2 2. JSP脚本元素 2 3. 注释 2 4. JSP指令 2 5. JSP动作元素 3 6. JSP内置对象 5 7. JSP内置对象及其作用 5 8. 获取页面参数 5 9. 重定向...
JSP(JavaServer Pages)是一种基于Java的动态网页技术,常用于构建Web应用程序。在本文中,我们将深入探讨一个基本的JSP登录模块的实现,包括各个关键页面的功能和交互流程。 1. **检查Cookie页面(index.jsp)**: ...
**ACCP5.0 JSP(2):深入理解与应用JSP开发Web应用系统** 在Web开发领域,JavaServer Pages (JSP) 是一种强大的技术,用于创建动态、交互式的网页。本教程将深入探讨JSP的核心概念,理论部分旨在帮助开发者掌握JSP...
总结,JSP分页实现是一个涉及到数据库操作、服务器端逻辑和客户端展示的综合过程。开发者需要理解如何在后台处理分页逻辑,如何将数据传递给前端,以及如何在前端展示分页效果。掌握这些知识后,无论是开发大型网站...
jsp servlet开发总结文档 jsp Servlet总结jsp Servlet总结jsp Servlet总结