Servlet(2/3)---登陆失败刷新

本文详细讲解了Servlet中如何处理登陆失败的情况,包括返回错误信息和使用Refresh响应头实现定时刷新跳转回登录页面。同时,介绍了如何利用ServletContext进行登录成功次数的统计,展示了ServletConfig和ServletContext的相关使用方法,以及获取文件路径和资源的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例一返回的用户不存在时,返回失败的提醒,案例二将需求稍作更改,登陆失败后,提示“用户名密码不匹配”三秒后重新跳转回登录页面
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
定时刷新:

常见响应头:(格式)Refresh: (秒数) ; url=跳转的路径 --定时刷新

如何修改响应头:(都是key value 相对应的)
response.setHeader(String key,String value); 设置字符串形式的响应头
response.addHeader(String key,String value); 追加响应头,若之前设置过则为追加,若之间没有设置过,则为设置。

实现定时刷新: response.addHeader(“Refresh”,“3;url=http://localhost:8080/index.jsp”);

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
案例三:统计登录成功的人数
servlet 是一个单实例多线程的 ,在用户登录成功之后获取之前登陆成功的人数+1 .
ServletContext:
上下文/全局管理者
每个 Java 虚拟机的每个“Web 应用程序”都有一个上下文
常用方法:
setAttribute(String key,Object obj) //设置值
Object getAttribute(String key) //获取值 和map 很相似
removeAttribute(String key ) //移除值

获取全局管理者:this.getservletContext();
步骤分析:
1.在项目启动的时候,初始化登录次数(void init())
2.在登陆成功之后,获取全局管理者,获取登陆成功的总人数,将次数+1 再将值存储回去
3.当访问网页showServlet 时在获取全局管理者,获取登录次数,显示在页面上。


知识点:ServletConfig ServletContext 获取文件路径 域对象


servletConfig : servlet的配置对象
配置文件对象
在sevlet 的方法中有一个getServletConfig() 还有带参的init 函数的参数就是ServletConfig()
作用:
1.获取servlet 的名称:String getServletName() :获取的是配置文件web.xml 中的名称
2.获取当前servlet 的初始化参数:
String getInitParameter(String key):通过名称获取指定的参数值
Enumeration getInitParameterNames(): 获取所有的参数名称
初始化参数在web.xml 配置文件中,servlet 标签下 的子标签init-param
3.★★★获取全局管理者:ServletContext context = getServletContext();
//设置初始化参数
在这里插入图片描述(了解)
方法演示:
在这里插入图片描述
ServletConfig 是由服务器在创建servlet 的同时创建的,在调用init(ServletConfig config ) 初始化servlet ,被servlet 的getServletConfig 函数调用。

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
★★ServletContext:服务器的全局管理者(上下文)
是一个项目的引用。当项目启动的时候,服务器为每一个web 项目创建了一个servletContext 对象,当项目被移除或者是服务器关闭的时候servletContext 被销毁
作用:获取全局的初始化参数
2.共享资源(XXXAttribute())
3.获取文件资源
4.其他资源
获取servletContext :
getServletConfig().getServletContext();
getServletContext(); 它的底层其实就是getServletConfig().getServletContext();
常用方法:()了解
1.
String getInitParameter(String key):通过名称获取指定的参数值
Enumeration getInitParameterNames(): 获取所有的参数名称
获取的参数是全局参数,参数存放在根标签下的子标签:context-param 子标签
<param-name <param-value
2.获取文件资源
String getRealPath(String path) : 获取文件部署到tomcat 上的路径(在电脑上的真实路径)
getRealPath("/") : 获取的目录是项目的路径
getRealParh("/1.text") : 获取的路径是项目下的1.txt 资源的路径
InputStream getSourceAsStream(String path): 以流的形式返回一个文件
传入的参数都是在tomcat 上的地址(传入“/”就是项目的真实地址)

获取文件的mime类型:大类型/小类型
String getMimeType(String 文件名称)
例如:传入的文件名:1.jpg 返回的结果 :image/jpeg
底层的执行:截取文件的后缀名,在配置文件中有在文件后缀名和mime 类型的对应关系
关于文件的流形式返回和文件的mime 类型都应用在文件下载上

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
域对象!!!★★★
在全局管理者 **ServletContext 的资源共享(xxxAttribute())**中讲到过
在Java 中一共要学习三个域对象:就是在它存活的时间里都可以向里面存取数据(就可以理解为一个map 集合)
ServletContext:
常用方法:setAttribute(String key , String value) addAttribute(String key,String value) getAttribute(String key)
servletContext 的生命周期:在服务器创建servlet 的时候为每一个web 创建一个ServletContext 对象,在servlet 被移除或者是服务器关闭的时候结束声明。
存放的是共享数据

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
获取文件的路径:通过类加载器获取(直接记住)
类名.class.getClassloader().getResource(“文件名”).getPath(); 文件在classes文件目录下,这种方式不依赖ServletContext

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值