0
点赞
收藏
分享

微信扫一扫

request、response对象详解

安七月读书 2022-03-11 阅读 87

tomcat服务器下

request 继承关系

getRequestURL()获取客户端请求时的完整URL
getRequestURI()获取请求行中资源名称部分(项目名称开始)
getQueryString()获取请求行中的参数部分
getMethod()获取客户端请求方式  get或post
getProtocol获取http版本号
getContextPath()获取webapp名字

获取请求参数  request  (重要)

req.getParameter()
获取指定名称的参数
req.getParameterValues()
获取指定名称参数的值

HttpServlet 是一个抽象类

Servlet都有哪些方法?

HttpServlet 类包含 init() 、 destroy() 、service()、GetServletConfig()、GetServletInfo()方法。

其中 init() 和 destroy() 方法是继承的。

service() 方法    

service() 方法是 Servlet 的核心

Servlet的路径访问

localhost:8080/tomcat_pro1_war/s01这个是网页的访问路径

其中   tomcat_pro1_war  属于站点  getContextPath()可以获得

/s01  属于tomcat服务器下的servlet 的路径

请求乱码问题

tomcat 8以上  get不会出现中文乱码,post会

在post请求中加入以下代码即可

req.setCharacterEncoding("utf-8");

这个之针对post请求

请求转发问题

req.getPequestDispatcher(" 转发路径 ")。forward(req,resp);

特点:

地址栏不改变,而服务器改变        

始终只有一个请求则数据可以共享

@WebServlet("/s03")
public class Sverlet03 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String uname = req.getParameter("uname");
        System.out.println("姓名03"+uname);

        req.getRequestDispatcher("/s04").forward(req,resp);


    }
}

request 的作用域 

用在当服务器想在客户端传送数据时,将数据setAttribute到作用域中再利用请求转发即可  

方法:

response 继承关系 

响应乱码问题

服务端再向客户端响应中文数据时会出现乱码问题

服务器端默认编码 ISO-8859-1  

解决办法:

设置服务端和客户端的编码格式

//设置服务器端
resp.setCharacterEncoding("utf-8");
//设置客户端
resp.setHeader("content-type","页面/html;charset=utf-8");

同时这是客户端和服务端编码

resp.setContentType("页面/html;charset=utf-8");

重定向

resp.sendRedirect(路径);

举报

相关推荐

0 条评论