学习笔记之jsp内置对象
发布日期:2022-02-17 02:39:50 浏览次数:45 分类:技术文章

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

学习笔记-jsp

Jsp页面生命周期

画的一个流程图:
在这里插入图片描述
jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同事请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但也要主义多线程的编程带来的同步问题,由于该Servlet始终驻于内存,所以响应非常快。

JSP内置对象

内置对象简介:

Jsp内置对象是web容器创建的一组对象,不使用new关键字就可以使用。
九大内置对象:
out、request、response、session、application
(下面是不常用)
Page、PageContext、
exception、
config。
——————
Web程序的请求响应模式
用户发送请求,服务器响应。
——————
缓冲区:Buffer,内存保存临时数据。
out对象:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
常用方法:
void println()
void clear();清除缓冲区的内容,如果在flush之后调用会抛出异常
void clearBuffer()清除缓冲区的内容,如果在flush之后不会抛出异常
void flush()将缓冲区内容输出到客户端
int getBufferSize()返回缓冲区以字节数的大小,如不设缓冲区则为0
int getRemaining()返回缓冲区还剩余多少可用
boolean isAutoFlush()返回缓冲区满时,是自动清空还是抛出异常
void close()
关闭输出流
————
get与post区别

get:以明文的方式通过URL提交数据,数据在URl中可以看到。提交的数据最多不超过2KB。安全性较低但是效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索和查询等功能。

post:将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。比如:注册、修改、上传等功能。
request
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出回应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
StringgetParameter(String name)
返回name指定参数的参数值。

<% request.setCharacterEncoding("") %>//将编码一致 不出现提交乱码
URL传参//此时如果传中文,request.setCharacterEncoding将没用 需修改配置文档重启Tomcat

String[]getParameterValues(String name)返回包含参数name的所有值的数组

void setAttribute(String,Object)存储此请求中的属性
object getAttribute(String name)返回指定属性的属性值
String getContentType()得到请求的mime类型
request.getSession();
从当前request获取session,若获取不到则自动创建,并且返回新创建的session;若获取到,则返回到获取到的session;
request.getSession(true);
获取不到会自动创建
request.getSession(false);
获取不到不会自动创建
还有等等
——————
response对象
response对象包括了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HTTPServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效。

sendRedirect()

请求重新定向客户端需求
(跳转页面)
绝对路径
——————
请求重定向:客户端行为,本质上为两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
请求转发
服务器行为,request.getRequestDispatcher().forward(a,b);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变,所以可以传request的信息
相对路径


session

session表示客户端与服务器的一次对话
Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览器这个网站所花费的时间
session时间上是一个特定的时间概念。
在服务器内存中报春这不同用户的session。
session在第一个Jsp页面被装载时自动创建,完成对话期管理
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个回话。
当一个客户访问一个服务器是,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象
是HttpSession类的实例。
long getCreationTime()返回session创造时间
public String getId()返回Session创建时JSP引擎为他设的唯一ID号
public Object setAttribute(String name,Object value):使用指定名称将对象绑定到此会话
public Object getAttribute(String name)返回与此会话的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回NULL
String[]getValuesNames()返回一个包含此Session种所有可用属性的数组
int getMaxInactiveInterval()返回两次请求间隔多长时间此SESSION被取消

<%--  Created by IntelliJ IDEA.  User: HJCD  Date: 2020/5/15  Time: 10:48  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java"  import="java.text.*,java.util.*" %>    Title

session内置对象


<% SimpleDateFormat sdf =new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); Date d =new Date(session.getCreationTime()); session.setAttribute("username","admin"); session.setAttribute("password","123456");// 设置当前session最大生存期限单位是秒 session.setMaxInactiveInterval(10);%>Session创建时间:<%= sdf.format(d)%>
Session的Id编号<%= session.getId()%>
从Session中获取用户名:<%=session.getAttribute("username")%>
跳转
<%--  Created by IntelliJ IDEA.  User: HJCD  Date: 2020/5/15  Time: 11:18  To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title<%--Session创建时间:<%= sdf.format(d)%>
--%>Session的Id编号<%= session.getId()%>
从Session中获取用户名:<%=session.getAttribute("username")%>
<%--跳转--%>session中保存的属性有:<% String []name=session.getValueNames(); for(int i=0;i

session的生命周期

创建:
当客户端第一次访问某个JSp或则servl时候,度武器回味当前会话创建一个SessionId,每次客户端向服务端发送请求是,都会将此SessionId携带过去,服务端会对此SessionId进行校验

活动:

某次回话当中通过超链接打开的新页面属于同一次会话。
只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源是属于同一次会话。
除非本次回话的所有页面都关闭后再重新访问某个Jsp或则Servlet将会创建新的会话
销毁:
调用了1.Session.invalidate()
2过期
3重启服务器
tomcat默认超时时间为30min
在web.xml配置也可以更改超时时间(min)

10

application

application对象实现了用户间数据的共享,可存放全局变量。
application开始与服务器的启动,终止于服务器的关闭。
在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作。
(相似与static)
方法
public void setAttribute(String name,Object value)使用指定名称将对象绑定到此会话。
public Object getAttribute(String name)返回与此对话的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
Enumeration getAttributeNames()返回所有可用属性名的枚举
String getServerInfo()返回Jsp(Servlet)引擎名及版本号


page对象

page对象就是指向当前JSP页面本身,有点类似类中的this指针,它是java.lang.Object类的实例。
class getClass()返回Object的类
int hashCode()返回此Object的hash码
boolean equals(object obj)判断此Object是否与指定的Object对象相等
void copy(object obj)把此Object拷贝到指定的Object对象中
Object toString()
把此Object对象转换成String类的对象
void notify()唤醒一个等待的线程
void notifyAll()唤醒所有等待的线程
void wait(int timeout)使一个线程处于等待直到timeout结束或被唤醒
void wait使一个线程处于等待直到被唤醒
——————
pageContext对象提供了对Jsp页面内所有对象及名字空间的访问,可以访问到本页所在的session,也可以取本页面所在的application的某一属性值
config对象
config对象实在一个Servlet初始化,JSp引擎向他传递信息用的,此信息包括Servlet初始化时所要用的的参数以及服务器的有关信息。
——————
exception对象和javase差不多但要用必须把isErrorPage设为true
erropage=""可以给那个页面来处理
——————

转载地址:https://blog.csdn.net/qq_39814938/article/details/106143913 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:servlet改进jsp想要实现的功能
下一篇:学习笔记之javabean

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月06日 06时15分34秒