Servlet/Jsp学习总结

  • Post author:
  • Post category:其他


首先先明确servlet是用来处理客户端请求的

servlet的作用:

1.获取表单数据

2.获取浏览器附加信息

3.处理数据(在servlet中调用其它的处理数据方式来完成,如jdbc rpc等)

4.给客户端产生一个响应

5.在响应中添加附加信息

浏览器与服务器会话状态信息

cookie:  分为 会话cookie(随浏览器关闭而结束) 和 持久化cookie(持久化到本地,可以通过cookie.setMaxAge(2000)设置有效时长)

存在于客户端浏览器,每一次请求都会将有效的cookie发送给服务器 所以cookie有数量限制(具体数量与不同浏览器有关)

session:  分为两部分 sessionid与session(键值对的关系) 存在服务器端,服务器通过cookie将sessionid发送给浏览器,

所以可以在不同请求间传递信息  1.关闭tomcat 2.reload web应用 3.session时间到 (在web.xml中配置)4invalidate  session(方法调用强制失效


servlet的实例化:

容器利用Java反射实例化servlet对象

类反射加载机制:Class clazz=Class.forName(“类名”)   或者用一个实例对象getClass()方法 加载类

进行了IO类加载以及静态成员初始化操作

Servlet obj=clazz.newInstance()在堆内存完成所有成员变量初始化创造对象

obj.init();


servlet 生命周期

servlet生命周期是由容器管理

分为

三个阶段:

init初始化


service


服务 destroy 销毁

当客户端浏览器第一次请求该servlet时,Tomcat会立即创建该servlet对象,并立即调用init()完成初始化 并且在

新的线程中

调用service()方法。

Tomcat会对已经实例化的servlet对象进行缓存,当有客户端浏览器

再次请求

该servlet,容器

不会再次创建

servlet对象,而是在一个新的线程中调用service()方法。

在容器关闭时, 容器会在servlet对象销毁之前调用一次destroy()方法

//servlet可以在web.xml中配置,使其在容器启动时初始化,不必依赖于请求而创建

cookie和session:

HTTP是无连接的不能记录状态信息,而在一些场景下需要这些状态信息(记住用户名,验证是否已经登陆,验证码等信息)

所以记录客户端状态,识别请求状态需要cookie session


cookie:

分为 会话cookie(随浏览器关闭而结束) 和 持久化cookie(持久化到本地,可以通过cookie.setMaxAge()设置有效时长 单位为Second秒)

存在于客户端浏览器,每一次请求都会将有效的cookie发送给服务器 所以cookie有数量限制(具体数量与不同浏览器有关)


session:

分为两部分 sessionid与session(键值对的关系) 存在服务器端,服务器通过cookie将sessionid发送给浏览器, 所以可以在不同请求间传递信息


session失效方法:

1.关闭tomcat 2.reload web应用 3.session时间到 (在web.xml中配置)4invalidate  session(方法调用强制失效)

JSP:

(jsp引擎编译为一个servlet文件 其实本质和servlet相同 在客户端第一次请求时,或者jsp被修改时编译)


三种原始标签:(作为Java编译)


1.声明:<%!  %> jsp编译后的Java源文件中的类下

2.赋值:<%=   %> jsp编译后的Java源文件中的字符输出流方法中(切记,不要加分号)

3.脚本:<%      %> jsp编译后的Java源文件中的jspServices方法中


jsp指令标签:


1.<%@ page launguae=”java” import=”java.util.*”  pageEncoding=”utf-8″%>

2.<%@ include  %>


jsp内置对象(暗对象):


jsp已经为我们创建好的对象(9个):

jsp中                servlet中


request            HttpServletRequest


作用域一次请求


response         HttpServletResponse


application       ServletContext


全局作用域



session            HttpSession


随浏览器关闭而失效


config               ConfigContext

out                    PrintWriter

exception         Throwable

pageContext

page

servlet和jsp本质时一样的,只是jsp对于展示更加擅长 相当于mvc中的view 而servlet则相当于controller

它默认内容是在printwriter流中(相当于servlet的printwriter()中) 通过标签来确定Java代码作用域

本人新人小白,有错误欢迎指出



版权声明:本文为qq_36023219原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。