请求和响应
Servlet最主要的作用就是处理客户端的请求,并向客户端做出响应。为此,针对Servlet的每次请求,Web服务器在调用service()方法之前,都会创建两个对象,分别是HttpServletRequest和HTTPServletResponse。其中,HttpServletReques用于封装HTTP请求消息,简称request对象。HTTPServletResponse用于封装HTTP响应消息,简称response对象。
一、HttpServletResponse对象
在Servlet API中,定义了一个HttpServletResponse接口,它继承自ServletResponse接口,专门来封装HTTP响应消息。HTTP响应消息分为状态行、响应消息头、消息体三部分。
发生状态码的相关方法
1.解决中文输出乱码问题
为了解决浏览器中显示的乱码,我们在HttpServletResponse接口中,提供了一个setCharacterEncoding()方法,改方法用于设置字符的编码方式,而解决乱码有两种方案:
第一种:response.setCharacterEncoding(“utf-8”);设置HTTPServletResponse使用utf-8编码
response.setHeader(“Content-Type”,“text/html;charset=utf-8”);通知浏览器使用utf-8解码
第二种方式:response.setContentType(“text/html;charset=utf-8”) 这个包含了第一种方式的两个功能
2.HttpServletRequest对象
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。
获取请求行的相关方法
String getMethod()该方法用于获取HTTP 请求消息中的请求方式
String getRequestURI()该方法用于获取请求行中资源名称部分,即位于URL 的主机和端口之后、参数部分之前的部分
String getQueryString()该方法用于获取请求行中的参数部分,也就是资源路径后面问号(?)以后的所有内容
String getProtocol()该方法用于获取请求行中的协议名和版本,例如,HTTP/1.0或HTTP/1.1
String getContextPath()该方法用于获取请求URL中属于Web应用程序的路径,这个路径以“1”开头,表示相对于整个Web站点的根目录,路径结尾不含“/”。如果请求URL属于Web站点的根目录,那么返回结果为空字符串