Request和Response详解

简介: Request和Response详解

Request常用方法


setAttribute() 在Request域中存储数据

setCharacterEncoding() 设置请求参数的编码方式,只针对post请求

getMethod() 获取请求类型

getParameter() 获取请求参数值

 getParameterNames() 获取所有请求参数,返回一个Enumeration枚举类

 getAttribute() 获取request域中存储的数据

getAttributeNames() 获取域中所有数据,返回一个Enumeration枚举类

getContextPath() 返回当前WEB项目相对路径

getCookies() 获取所有Cookie,返回一个Cookie数组

getRequestDispatcher()  获取转发器,

getSession()获取Session对象


String getRequestURI() : 获取请求URI;


String getServletPath() : 获取Servlet路径;


String getQueryString() : 获取get方式请求参数;


String getHeader(String name) : 通过请求头的名称获取请求头的值;


request.getRequestDispatcher(String path).forward(ServletRequest request, ServletResponse response); 转发


void removeAttribute(String name):通过键移除键值对;


request.getServletContext();获取ServletContext对象


这里对request请求域,session,ServletContext(application)进行 简单的区别


   session是会话层,在应用程序的web页面进行跳转的时候保存用户的状态,使整个会话层一直存在直到浏览器关闭。request的生命周期是一次访问,也就是说客户端的一次对服务器的访问会发出一个request,那么这个request持续到服务器程序对这个request全部处理完成。ServletContext的生命周期是这个应用的全程,也就是说从服务器应用启动开始ServletContext被加载起来,然后直到服务器关闭的时候销毁。


下面通过编程进行验证代码如下


注意在使用@WebServlet的时候用 @ServletComponentScan进行扫描才行


@WebServlet(urlPatterns = "/servlet")
public class servlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");//设置请求头的编码方式,只针对post请求
        request.setAttribute("username","123");//在request域中存值
        System.out.println(request.getMethod());//获取请求方法
        System.out.println(request.getParameter("username"));
        System.out.println(request.getParameterNames());
        System.out.println(request.getCookies());
        HttpSession session = request.getSession();
        session.setAttribute("user","root");
        ServletContext servletContext = session.getServletContext();
        servletContext.setAttribute("user1","root1");
    }
}
@WebServlet("/servlet1")
public class servlet1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println(request.getAttribute("username"));
        HttpSession session = request.getSession();
        System.out.println(session.getAttribute("user"));
        ServletContext servletContext = session.getServletContext();
        System.out.println(servletContext.getAttribute("user1"));
    }
}

 在浏览器先访问servlet的时候,再访问servlet1成功打印出root和root1,而request中的123并未打印出,印证了这一猜想。

Response方法

setContentType()  告知浏览器数据类型


       比如 response.setContentType("text/html;charset=UTF-8");设置响应的数据类型是html文本,并且告知浏览器,使用UTF-8 来编码。


setCharacterEncoding 设置Response的编码方式

setHeader() 设置消息头

setStatus() 设置状态吗

addCookie() 添加Cookie

sendRedirect()重定向

getOutputStream()   获取通向浏览器的字节流

getWriter() 获取通向浏览器的字符流


注意:字节流和字符流不能同时存在


相关文章
|
9月前
|
应用服务中间件 数据安全/隐私保护
Request和Response介绍
Request和Response介绍
|
9月前
response.setcontenttype详解
response.setcontenttype详解
|
9月前
|
前端开发 Java 应用服务中间件
Request&Response(4)
Request&Response
60 0
|
9月前
|
Java 应用服务中间件 API
Request&Response(1)
Request&Response
85 0
|
9月前
|
Java Maven 数据安全/隐私保护
Request&Response(2)
Request&Response
72 0
|
9月前
|
存储 Java 应用服务中间件
Request&Response(3)
Request&Response
71 0
|
9月前
|
Java 数据库连接 数据库
Request&Response(5)
Request&Response
71 0
|
10月前
|
Java 数据库连接 数据库
Request 和 Response详解(下)
Request 和 Response详解(下)
150 1
|
10月前
|
存储 缓存 前端开发
Request 和 Response详解(中)
Request 和 Response详解(中)
129 0
|
10月前
|
前端开发 Java 应用服务中间件
Request 和 Response详解(上)
Request 和 Response详解(上)
202 0