資訊中心 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);
}
課程體系
通知公告
富二代app破解版下载