Servlet如何实现用户名为空拒绝访问,目前代码会报错: //只要用户名不是空,就代表登录过可以访问资源 if(!((User)(req.getSession().getAttribute("loginUser"))). getUsername().equals("")){ chain.doFilter(request, response); }
时间: 2024-03-10 08:48:17 浏览: 18
在这段代码中,如果用户名为空,它会尝试访问空引用的`getUsername()`方法,导致空指针异常。为了避免这种情况,你可以使用`StringUtils`类中的`isBlank()`方法,它可以检测字符串是否为空或者只包含空格。
你可以使用以下代码来实现用户名为空拒绝访问的功能:
```java
User loginUser = (User) req.getSession().getAttribute("loginUser");
if (loginUser != null && StringUtils.isNotBlank(loginUser.getUsername())) {
chain.doFilter(request, response);
} else {
// 用户名为空,拒绝访问
resp.sendRedirect("login.jsp");
}
```
这段代码首先从会话中获取用户对象,如果用户对象不为空并且用户名不为空或空格,则允许访问资源。如果用户名为空,它将重定向到登录页面。
相关问题
jenkins报错URI: /jenkins STATUS: 404 MESSAGE: Not Found SERVLET: Stapler
这个错误通常表示你访问的 Jenkins 服务不存在或者无法访问。你可以先检查一下 Jenkins 服务是否正在运行,并且确保你的网络连接正常。另外,也可以确认一下你访问的 Jenkins URL 是否正确,包括端口号和路径。如果问题仍然存在,你可以尝试重启 Jenkins 服务或者重新安装 Jenkins。
http://localhost:8080/Lab1_war_exploded/Servlet
根据提供的引用内容来看,原来的访问地址是http://localhost:8080/文件名,但是报错了。解决这个问题的方法是将访问地址改成http://localhost:8080/Web_war_exploded/文件名路径。另外,如果按照正常的访问地址,应该是http://localhost:8080/ts/AjaxServlet01。 如果不会更改服务器地址的话,可以将服务器地址改成默认地址localhost:8080。所以,访问地址应该是http://localhost:8080/Lab1_war_exploded/Servlet。