java中servlet知识_JavaWeb基础知识点之Servlet

一、servlet的概述

servlet是采用java编写的运行在服务器上的程序,用于接受用户的请求,并针对请求产生响应。javax.servlet.Servlet是servlet的顶层接口,主要方法有init和destory,service三个方法。

二、编写servlet程序

servlet编写总共有3个步骤:

1、定义SendMsgServlet继承HttpServlet,并且放置在com.tanzhou.servlet包下。

2、通常重写init、destroy、doGet、doPost四个方法。

3、在web.xml中配置改servlet:全路径指定servlet类并起别名,同时可以设置参数(也可以不设置),然后设置servlet的映射路径,这样请求相应的路径就能访问到对应的servlet类中,其中在发送请求的时候,action的路径“/”开头的是绝对路径,没有“/”开头的是相对文件所在目录的路径。

SendMsgServlet

com.prosay.servlet.SendMsgServlet

keyword

fuck,shit,cao

SendMsgServlet

/chatroom/send

三、servlet生命周期

2e5424d3934e95d1bc747c4bd626abd2.png

四、get和post的区别

5f229a04f37ae98443bac5dcb68ea510.png

五、ServletContext

ServletContext是servlet上下文对象,收缩压servlet共享的一片内存空间,我们可以把数据存储在片内容空间中,实现在多个servlet当中共享数据。

在servlet中可以通过this.getServletContext()来获取上下文对象,通过setAttribute设置上下文对象属性,通过getAttribute获取上下文对象属性。

初始化默认加载的初始化servlet的init方法:

ServletContext application = this.getServletContext();

//第一次访问(初始化)创建一个ArrayList用来存储消息列表,然后将这个ArrayList实例存入Servlet上下文中

List msgs = new ArrayList();

//servletContext存属性方式 setAttribute(String attrName,Object attr)

application.setAttribute("msgs",msgs);

获取上下文对象属性:

//获取上下文对象

ServletContext application = this.getServletContext();

//this.getServletConfig();获取配置信息,这个配置信息是web.xml中配置的

//从上下文中获得已有的消息列表

List msgs = (List)application.getAttribute("msgs");

六、load-on-startup

servlet默认情况下是在服务器启动之后,第一次从web上访问后才会执行init方法初始化。我们可以在web.xml配置servlet的时候通过设置loadOnStartup来控制servlet的实例化时间。

分三种情况:

1、loadOnStartup < 0

即负数的情况下,web容器启动的时候不做实例化处理,servlet首次被调用时做实例化。

这种情况和没有设置loadOnStartup是一样的。

2、loadOnStartup > 0

web容器启动的时候做实例化处理,顺序是由小到大,正整数小的先被实例化。

3、loadOnStartup = 0

web容器启动的时候做实例化处理,相当于是最大整数,因此web容器启动时,最后被实例化。

init

com.prosay.servlet.InitServlet

0

七、ServletConfig

每一个servlet都对应在web.xml中有一段配置,ServletConfig对象真是读取这段专属servlet的配置文件信息。可以通过配置一些外部参数更加灵活的让servlet工作。

private String[] keywords ;

ServletConfig config = this.getServletConfig();

String keyword = config.getInitParameter("keyword");

keywords = keyword.split(",");

八、会话跟踪

1、会话跟踪概念

Java Servlet使用session来跟踪和管理会话内的状态。利用session,服务器可以把一个客户的所有请求联系起来,并记住客户的操作状态。

当客户第一次连接到服务器时,服务器为其建立一个session对象,并分配给客户一个唯一的标识(sessionID),以后客户每一次请求都要将这个标识一起提交。

服务器根据这个特定的表示找到特定的session对象,读取或者记录用户的信息。

2、会话跟踪的四种技术

隐藏表单域:在表单域中添加一个隐藏的input,存放用户做为唯一识别信息,并一起提交给后台。

URL重写:在URL上加上用户唯一识别信息。

Cookie

Session

Cookie:

Cookie”是小量信息,由网络服务器发送出来以存储在网络浏览器上,从而下次这位独一无二的访客又回到该网络服务器时,可从该浏览器读回此信息。可以辨别用户身份、进行session跟踪而储存在用户本地终端上的数据.

工作原理:

首先,服务器端在响应中利用Set-Cookie header来创建一个Cookie ,然后,浏览器在它的请求中通过Cookie header包含这个已经创建的Cookie,并且把它返回至服务器,从而完成浏览器的论证。

HttpSession:

HttpSession存/取值:

获得session对象 HttpSession session =request.getSession();

存数据:session.setAttribute(key,value);

销毁:session.invalidate();

设置时长:session.setMaxInactiveInterval(sec);

HttpSession生命周期

HttpSession生命周期 :

Servlet容器从创建Session对象到销毁的过程。Servlet容器会依据Session对

象设置的存活时间,在达到Session时间后将Session 对象销毁。

设置Session存活时间的方式有三种:

一、session.setMaxInactiveInterval(interval)方法体内的参数interval为秒。

二、web.xml里配置如下信息

时间长度(单位为分钟)

三、在tomcat/conf/server.xml中定义defaultSessionTimeOut=时间长度

(分钟)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值