java获取文件的绝对路径_051、Java-ServletContext

1.ServletContext对象介绍和获取

ServletContext 对象:

问题:

Request 解决了一次请求内的数据共享问题,session 解决了用户不同请求的数据共享问题,那么不同的用户的数据共享该怎么办呢?

解决:

使用 ServletContext 对象

作用:

解决了不同用户的数据共享问题

原理:

ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那么不同用户发起的请求获取到的也就是同一个对象了,该对象由用户共同拥有。

特点:

服务器进行创建用户共享

一个项目只有一个

生命周期:

服务器启动到服务器关闭

作用域:

项目内

使用:

获取 ServletContext 对象

使用作用域进行共享数据流转

获取 web.xml 中的全局配置

获取 webroot 下项目资源流对象

获取 webroot 下资源绝对路径

创建ServletContext对象三种方式

ServletContext sc1 = this.getServletContext();

ServletContext sc2 =this.getServletConfig().getServletContext();

ServletContext sc3=req.getSession().getServletContext();

存储用户共享数据

sc.setAttribute(String name,Object value);

获取用户共享数据

sc.getAttribute(String name);

删除共享数据

sc.removeAttribute(String name);

获取web.xml中的全局配置属性

作用:将部分动作和源文件进行解耦,我们只需要在xml配置文件中进行相关配置就会改变代码的执行效果。

sc.getInitParameter(String name);注意返回的是String类型数据

获取webRoot下的资源流对象

sc.getResourceAsStream(String path);

注意:

path为相对路径,写从webRoot开始查找资源的路径即可。

获取webRoot下的资源绝对路径

sc.getRealPath(String path);

注意:

path为相对路径,写从webRoot开始查找资源的路径即可。

示例:

ServletContextA.java

public 

ServletContextB.java

import 

web.xml配置信息

<?xml version="1.0" encoding="UTF-8"?>

v2-46405c423cd407924756f4412af93eec_b.jpg

v2-3afc714039813685f8701cb3f8a00c46_b.jpg

2.ServletContext对象实现网页访问计数次数

LoginServlet

package 

UserServlet

import 

MainServlet

package 

NumServlet

package 

web.xml配置信息

<servlet>
    

v2-d1bc044d590852f8f5d119c4e47422a7_b.jpg

v2-af73e618b56b2e44bd272f7d76eb089a_b.jpg

3.ServletConfig 对象

问题:

使用 ServletContext 对象可以获取 web.xml 中的全局配置文件,在 web.xml 中

每个 Servlet 也可以进行单独的配置,那么该怎么获取配置信息呢?

解决:

使用 ServletConfig 对象

作用:

ServletConfig 对象是 Servlet 的专属配置对象,每个 Servlet 都单独拥有一个 ServletConfig 对象,用来获取 web.xml 中的配置信息。

使用:

获取 ServletConfig 对象

获取 web.xml 中 servlet 的配置信息

import 

web.xml配置信息

<servlet>
    

v2-78605f3d67307b69318bf25fa4945ce1_b.jpg

v2-32e8a1c2dd03fe1142b9063603e4dfac_b.jpg

4.用数据库连接的登录案例

在数据库中创建userInfo表添加数据

v2-23de454a01ecd1c93cf830d29ecaeddc_b.jpg

创建项目包

v2-a9d1dc2722fcfc827f21e64e484b0f26_b.jpg

pojo实体类

package 

UserInfoDao

package 

UserInfoDaoImpl

import 

UserInfoService

package 

UserInfoServiceImpl

import 

TestUserinfoService测试

package 

查询数据库中是否存在想要查询的数据

v2-f2dd06a54cfc416a4f6492e9c1475da4_b.jpg

LoginServlet

import 

DoLoginServlet

import 

IndexServlet

package 

LogoutServlet

import 

web.xml

<?xml version="1.0" encoding="UTF-8"?>

v2-b07ebf8e45e5fecb16d4e0b1b9ba1f6f_b.jpg

v2-3c9ee5ca77929bd00e909f22d9fb340e_b.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值