我创建了一个Web应用程序。一切正常。但是,如果用户还没有登录,他们可以通过URL访问其他jsp页面。我想停止访问网址。我看到一些例子,它显示了过滤器的用法。我是过滤器的新手,我不知道如何实现它。我正在使用servlets,dao和jsp页面。
请建议我怎么做。我想为所有jsp或servlets页面创建一个过滤器。
Web.XML:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>MBO</display-name>
<filter>
<filter-name>MyFiltersDAO</filter-name>
<filter-class>Model.MyFiltersDAO</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFiltersDAO</filter-name>
<url-pattern>/secret/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
</web-app>
班级:
public class MyFiltersDAO {
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse resp = (HttpServletResponse)response;
String abc=(String) req.getSession().getAttribute("Username");
if(null==((String) req.getSession().getAttribute("Username")) || ((String) req.getSession().getAttribute("Username")).equals("")){
chain.doFilter(req, resp);
} else {
resp.sendRedirect("/Login.jsp");
}
}
public void destroy() {
}
}
当我运行项目时,它显示HTTP404错误
答案 0 :(得分:1)
你可以试试session.Suppose当用户登录然后你可以在会话中设置会话属性,如
if(loggedIn)
{
session.setAttribute("username",username);
}
并且在你的jsp中你可以验证页面何时加载,如果session不是null,那么应该访问该页面,否则将用户重定向到主页
if(session.getAttribute("username")!=null)
{
}
else
{
response.sendredirect(url)
}
<强>更新强> 你可以用
来做 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
if(loggedIn)
{
session.setAttribute("username",user))
response.sendredirect("index.jsp");
}
}
<%
if (session.getAttribute("username") !=null) {
//your code
}
else
{
//your code
}
%>