当前位置:文档之家 > javaee实验报告2

javaee实验报告2

实验二基于session和Filter判断用户是否登录

【实验目的】

目的:利用session对象和Filter对象判断用户是否登录。如果用户没有登录,不准访问Page目录下的资源。

要求:掌握用session和Filter判断用户是否登录。

【实验内容】

实验内容:

编写一个使用session和Filter来判断用户是否登录的应用。包括三个组成部分:

1)一个登陆的页面Login.jsp;

2)一个Servlet组件LoginServlet.java对登陆的页面Login.jsp的提交

进行处理,将用户名写入到Session中;

3)一个Filter过滤器对Page目录下的资源进行管理。如果用户已经登录

可以访问Page目录下的资源,否则将请求转发到Login.jsp登录页面,提

示用户进行登录。

实验步骤:

1) 在已有工程下新建一个页面文件Login.jsp, 在该页面中设计一个

form表单,其中包含一个表示用户名的文本框和一个表示密码的密码框,以及一个登陆和一个取消按钮。

2) 新建一个Servlet组件LoginServlet.java,对登陆的页面Login.jsp

的提交进行处理,将用户名写入到Session中。

3) 新建一个Filter过滤器SessionFilter.java,对Page目录下的资源进

行管理。如果用户已经登录可以访问Page目录下的资源,否则将请求转发到Login.jsp登录页面,提示用户进行登录。

4) 运行Page目录下的页面资源(任何一个jsp和html页面),看是否转

发到Login.jsp登录页面。输入用户名和密码,看处理逻辑是否正确。

【实验结果】

程序运行效果示例:

1)登录页面:

javaee实验报告2

2)登录成功页面:

javaee实验报告2

3)登录失败页面:

javaee实验报告2

程序源代码:

web.xml

filter1

experiment.SessionFilter

filter1

/experiment/Page/2.jsp

SessionFilter.java

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;

HttpServletResponse res = (HttpServletResponse) response;

String username = req.getParameter("username");

String password = req.getParameter("password");

if (username == null || "".equals(username)||password == null || "".equals(password )) { res.sendRedirect("http://"+req.getHeader("Host")+"/servlet_homework/experiment/3.jsp");

}

else {

chain.doFilter(request, response);

}

}

1.jsp

账号:

密码:

2.jsp

登录成功!!

账号:<%=request.getParameter("username") %>

密码:<%=request.getParameter("password") %>

3.jsp

账号或密码为空!!

跳转到登录页面

【实验总结与心得】

通过此次试验,我学会利用session对象和Filter对象来判断用户是否登录。首先,新建一个Servlet组件LoginServlet.java,对登陆的页面Login.jsp 的提交进行处理;其次,新建一个Filter过滤器SessionFilter.java,对Page 目录下的资源进行管理。我觉得这两步应该是最重要的。但是,由于所学知识不够全面,很多内容对我来说比较难实现,实验在很多方面还有待完善,因此在以后的学习过程中,我还要会掌握更多知识,力求做到更好。