Tomcat服务器种的HttpServletRequest类

HttpServletRequest 类有什么作用:
             每次只要有请求进入 Tomcat 服务器,Tomcat 服务器就会把请求过来的 HTTP 协议信息解析好封装到 Request 对象中
            然后传递到 service 方法(doGet 和 doPost)中给我们使用。我们可以通过 HttpServletRequest 对象,获取到所有请求的信息

 

HttpServletRequest 类的常用方法:
          getRequestURI()                获取请求的资源路径
          getRequestURL()                获取请求的统一资源定位符(绝对路径)
          getRemoteHost()               获取客户端的 ip 地址
          getHeader()                       获取请求头
          getParameter()                  获取请求的参数
          getParameterValues()        获取请求的参数(多个值的时候使用)
          getMethod()                      获取请求的方式 GET 或 POST
          setAttribute(key, value);    设置域数据
          getAttribute(key);               获取域数据
          getRequestDispatcher()     获取请求转发对象

 

创建了Tomcat工程之后,通过自定义类去继承HttpServlet类之后,重写doGet方法或者doPost方法之后,去调用对应上诉方法

请记住,这些方法都是请求的方法,也就是说 浏览器访问服务器  的一些参数。

Tomcat服务器种的HttpServletRequest类

如何获取请求参数:

比如说。我要获取表单中的请求参数,如用户名文本框等等  通过 getParameter() 方法即可得到,代码如下

Tomcat服务器种的HttpServletRequest类

POST 请求的中文乱码解决:

如果是post请求,当我们需要获取参数比如说是 用户名的时候,如果用户名是中文的,会出现乱码的现象

这是因为请求体的字符集默认不是utf-8,所以可以通过setCharacterEncoding("utf-8")去设置,当然这个方法需要在获取请求参数之前设置

Tomcat服务器种的HttpServletRequest类

 

请求的转发:
           什么是请求的转发?
                         请求转发是指,服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。

Tomcat服务器种的HttpServletRequest类

这需要两个Servlet程序,第一个Servlet程序,负责接收用户的请求参数,通过serAttribute()方法,设置一个域即盖个章,方便Servlet2程序检查

通过.getRequestDispatcher("要告诉浏览器的工程位置"); 指明这个位置在哪  在通过 forward方法,让它走向Servlet2程序。

我们要记住的一点,就是这个请求转发它的路径是有一定的问题的,比如说,

Tomcat服务器种的HttpServletRequest类

 

具体如何实现,代码如下:  记住了,这些也必须在web.xml 文件中导入相关信息,如 <servlet> 标签等

Tomcat服务器种的HttpServletRequest类

Tomcat服务器种的HttpServletRequest类

为了解决跳转导致路径不一致的问题:使用base标签即可

Tomcat服务器种的HttpServletRequest类

 

Tomcat服务器种的HttpServletRequest类

Web 中的相对路径和绝对路径:

在 javaWeb 中,路径分为相对路径和绝对路径两种:
    相对路径是:
              .           表示当前目录
             ..           表示上一级目录
          资源名     表示当前目录/资源名
绝对路径:
          http://ip:port/工程路径/资源路径
在实际开发中,路径都使用绝对路径,而不简单的使用相对路径。
1、绝对路径
2、base+相对

web 中 / 斜杠的不同意义:

在 web 中 / 斜杠 是一种绝对路径。

/      斜杠 如果被浏览器解析,得到的地址是:http://ip:port/

                      <a href="/">斜杠</a> 

/ 斜杠   如果被服务器解析,得到的地址是:http://ip:port/工程路径

1、/servlet1

2、servletContext.getRealPath(“/”);

3、request.getRequestDispatcher(“/”);

特殊情况: response.sendRediect(“/”);

把斜杠发送给浏览器解析。得到 http://ip:port/

 

上一篇:Java Web学习-------HttpServletRequest对象的总结


下一篇:HttpServletRequest get post 入参