资讯中心 Info
当前位置:爱尚教育 > 资讯中心 >
JavaWeb中的request、session和application
发布日期:2020-09-22 阅读次数:

        在JavaWeb体系中,request、session和application是最常用几个的jsp的内置对象,它们都可以用来存放和传递数据,但是作用域不同。

        request意为“请求”,指在一次请求过程中传递数据,可以通过request.getParameter()方法获取到客户端请求来的数据,也可以使用request.setAttribute()方法向客户端传递数据,但是其作用域仅仅在一次请求的过程中有效。

        session意为“会话”,使用session.setAttribute()存储数据,其作用域为客户端访问项目的每个页面的时候都有效,所以session一般用来保存用户的登录信息,或者在项目中做登录验证使用。下面的例子是使用filter实现登录验证的功能。

 

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("loginFilter");
//登录验证 判断session中的对象
HttpServletRequest req = (HttpServletRequest)request;
String url = req.getRequestURI();
 
if (url.indexOf("login.jsp") != -1 || 
url.indexOf("register.jsp") != -1 ||
url.indexOf("loginservlet") != -1 ||
url.indexOf("registerservlet") != -1 ||
url.indexOf("ImageServlet") != -1) {
chain.doFilter(request, response);
return;
}
 
if (req.getSession().getAttribute("user") == null) {
((HttpServletResponse)response).sendRedirect("login.jsp");
return;
} else {
chain.doFilter(request, response);
}
 
}
 
        application意为“应用程序”,使用application.setAttribute()存储数据,每个客户端访问项目时共享的数据可以放在application中。下面是使用applicationshi实现统计网站访问人数的功能。
 
Object oc = application.getAttribute("count");
if (oc == null) {
application.setAttribute("count", 1);
} else {
int count = Integer.parseInt(oc.toString()) + 1;
application.setAttribute("count", count);
}
课程体系
通知公告