JSP基础

JSP基础

1.Cookie

将一个cookie对象传入客户端构造一个cookie对象
response.addCookie(Cookie cookie)Cookie cookie=new Cookie(String name,String value)

2.Session

session默认基础cookieHttpSession session = request.getSession();得到内置对象,永远不为空,除非服务器禁止session。
JSESSIONID是一个Cookie,Servlet容器,用来记录用户sessionsetAttribute保存数据,此方法还可将数据取出session.setAttribute(String name,Object obj);
cookie禁用:利用url携带JSESSIONID参数Object obj = session.getAttribute(String name)

3.比较

 CookieSession
存放位置浏览器本地硬盘(客户端)服务器内存
值的类型ASCII字符串对象(包括且不限于string,integer,list,map等)
存储大小小(<=4k一个站点最多保存20个Cookie)大(取决于服务器设置)
安全性不安全(他人可以分析存放在本地的Cookie并进行Cookie欺骗)(当访问增多,会比较占用服务器的性能。考虑到减轻服务器性能方面,应当使用Cookie)
跨域支持支持不支持

简单JSP程序

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
           <title>第一个JSP程序</title>
    </head>
    <body>
           <%
                  out.println("Hello World!");
           %>
    </body>
</html>

JSP的生命周期

(1)编译阶段:Servelet容器编译Servelet源文件,生成servelet类,当浏览器请求JSP页面时,JSP引擎会首先去检查是否需要编译这个文件。
如果这个文件没有被编译过,或者在上次编译后被更改过,则编译这个JSP文件。
编译的过程包括三个步骤:
解析JSP文件。
将JSP文件转为servlet。
编译servlet。 解析JSP文件。 将JSP文件转为servlet。 编译servlet.

(2)初始化阶段: 加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法 容器载入JSP文件后,它会在为请求提供任何服务前调用jspInit()方法。
如果您需要执行自定义的JSP初始化任务,复写jspInit()方法就行了,就像这样:
public void jspInit(){ // 初始化代码 }
一般来讲程序只初始化一次,servlet也是如此。 通常情况下您可以在jspInit()方法中初始化数据库连接、打开文件和创建查询表。

(3)执行阶段: 调用与JSP对应的Servelet实例的服务方法 当JSP网页完成初始化后,JSP引擎将会调用_jspService()方法。
_jspService()方法需要一个HttpServletRequest对象和一个HttpServletResponse对象作为它的参数,就像下面这样:
void _jspService(HttpServletRequest request, HttpServletResponse response) { // 服务端处理代码 }
jspService()方法在每个request中被调用一次并且负责产生与之相对应的response,并且它还负责产生所有7个HTTP方法的回应,比如GET、POST、DELETE等等。
(4)销毁阶段: 调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例jspDestroy()方法在 JSP中等价于servlet中的销毁方法。
jspDestroy()方法的格式如下:
public void jspDestroy() { // 清理代码 }
JSP标签 <% 代码片段 %>
<% out.println("Your IP address is " + request.getRemoteAddr()); %>

JSP注释



<%-- 这里可以填写 JSP 注释 --%>

JSP表达式输出



<%=%>

 JSP中的三种指令标签 
指令描述

<%@ page … %> 定义网页依赖属性,比如脚本语言、error页面、缓存需求等等

<%@ page pageEncoding="" import="" errorPage=""%>

<%@ include … %> 包含其他文件 <%@ include file=""%>

<%@ taglib … %> 引入标签库的定义 <%@ taglib prefix="" uri="">

JSP九大内置对象

response
转译后对应HttpServletRespons/ServletResponse对象 final javax.servlet.http.HttpServletResponse response
session
转译后对应HttpSession对象 javax.servlet.http.HttpSession session
application
转译后对应ServletContext对象 final javax.servlet.ServletContext application
out
转译后对应JspWriter对象,其内部关联一个PringWriter对象 javax.servlet.jsp.JspWriter out
page
转译后对应this final java.lang.Object page = this;
config
转译后对应ServletConfig对象 final javax.servlet.ServletConfig config;
exception
转译后对应Throwable对象,代表由其他JSP页面抛出的异常对象,只会出现于JSP错误页面(isErrorPage设置为true的JSP页面) Exception
pageContext
转译后对应PageContext对象,它提供了JSP页面资源的封装,并可设置页面范围属性 final javax.servlet.jsp.PageContext pageContext;

Jsp隐含变量

1、out 来源于Java.io.Writer类,它用于发送输出流到客户端。
2、request 来源于javax.servlet.http.HttpServletRequest接口。它被关联到每一个HTTP请求。
3、response 来源于javax.servlet.http.HttpServletResponse。response对象用于把取得的数据返回到客户端。
4、pageContext 提供访问JSP页面的命名空间。它也提供用来访问其他的JSP隐含对象。
5、session 来源于javax.servlet.http.HttpSession。它用于存储客户端请求的信息,因此它是有状态交互式的。
6、application 来源于javax.servlet.ServletContext。
7、config 来源于ServletConfig,它包含了当前JSP/Servlet所在的WEB应用的配置信息。
8、page 来源于当前被访问JSP页面的实例化。它实际使用的是JSP转换成的Servlet。
9、exception 用于捕获JSP抛出的异常。它只有在JSP页面属性isErrorPage=true时才可用。

作用域
什么是作用域?
我们在定义每一个变量,每一个属性的时候,都会考虑这个变量、属性的作用范围,也就是作用域。我们会根据我们的需求定义最适当作用域内的变量和属性。
PAGE_SCOPE = 1
REQUEST_SCOPE = 2
SESSION_SCOPE = 3
APPLICATION_SCOPE = 4

page作用域
request作用域
session作用域
application作用域
这四个作用域的作用范围,由上到下是一个比一个大。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值