JSP学习笔记(3)——域对象的属性操作
pageContext, request,session,application 对象都有这些方法,称为域对象
Object getAttribute(String name)
Enumeration getAttributeNames()
removeAttribute(String name)
void setAttribute(String name,Object o)
pageContext:属性的作用范围仅限于当前JSP页面
request:仅限于同一个请求
session:限于一次会话(浏览器打开直到关闭是一次会话)
application:属性的作用范围限于当前web应用。只要在一处设置属性,在其他各处的JSP或Servlet中都可以获取到
请求的转发和重定向:
1.区别:请求的转发只发出了一次请求,而重定向则发出了两次请求
//转发:地址栏为/forwardServletimportjava.io.IOException;importjavax.servlet.RequestDispatcher;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/***ServletimplementationclassForwardServlet*/@WebServlet("/forwardServlet")publicclassForwardServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;/***@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)*/protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubresponse.getWriter().append("Servedat:").append(request.getContextPath());//请求的转发//1.调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispatcher对象//调用getRequestDispatcher()需要传入要转发的地址Stringpath="testServlet";RequestDispatcherrequestDispatcher=request.getRequestDispatcher("/"+path);//2.调用HttpServletRequest的forward(request,response)进行请求的转发requestDispatcher.forward(request,response);}}//重定向:地址栏为testServletimportjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.annotation.WebServlet;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/***ServletimplementationclassRedirectServlet*/@WebServlet("/redirectServlet")publicclassRedirectServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;/***@seeHttpServlet#doGet(HttpServletRequestrequest,HttpServletResponseresponse)*/protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubresponse.getWriter().append("Servedat:").append(request.getContextPath());//执行请求的重定向,直接调用response.sendRedirect(path)方法,path为重定向的地址Stringpath="testServlet";response.sendRedirect(path);}/***@seeHttpServlet#doPost(HttpServletRequestrequest,HttpServletResponseresponse)*/protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//TODOAuto-generatedmethodstubdoGet(request,response);}}
在最终的Servlet中,转发的request对象和中转的那个request是同一个对象,重定向的则不是。
转发:/ 代表的是当前web应用的根目录;重定向:代表的是当前web站点的根目录
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。