HttpServlet基本用法

Servlet --接口

有两个实现类 GenericServlet  --抽象类

            HttpServlet    --抽象类 父类是GenericServlet

GenericServlet将其父类的其他方法做了默认空实现,只将service()方法抽象

service方法 1.判断请求方式 String method=req.getMethod();

                if("GET".equals(method)){

                //get获取数据

                    doGet();}

                else if("POST".equals(method)){

                //post获取数据

                  doPost();}

HttpServlet:对http协议的一种封装,简化操作

步骤:1.定义继承HttpServlet  2.复写doGet/doPost方法

Servlet相关配置

1.urlpartten:Servlet访问路径

@WebServlet(路径)

路径定义规则: /xxx

              /xxx/xxx多层

                *.do

HTTP:概率:Hyper Text Transfer Protocol 超文本传输协议

        传输协议:定义了,客户端和服务端通信时,发送数据的格式

          特点:1.基于TCP/IP的高级协议

              2.默认端口号:80

              3.基于请求/响应模型的:一次请求对应一次响应

              4.无状态的:每次请求之间相互独立,不能交互数据

              历史版本:1.0/1.1

              1.0:每一次请求响应都会建立新的连接

              1.1:会复用这个连接


请求消息数据格式:

1.请求行

请求方式  请求url  请求协议/版本

  GET      /xxxxx  HTTP/1.1


HTTP协议有7种请求方式,常用2种   

    Get:请求的url长度有限制的 不太安全

    post:请求的url长度没限制

2.请求头:客户端浏览器高数服务器一些信息

请求头名称:请求头值

常见的请求头:

1.User-Agent:浏览器告诉服务器,我访问你使用的浏览器版本信息

  可以在服务器获取该头的信息,解决浏览器的兼容问题

2.Referer:http://xxxxxxx

告诉服务器,从哪来?

防盗链

3.请求空行

空行,用于分割post请求的请求头和请求体的

4.请求体(正文)

封装post请求信息的请求参数的

响应消息数据格式:

Request:

1.request response对象原理

1.tomcat服务器会根据请求url中的资源路径,创建对应的ServletDemo1的对象

2.tomcat服务器,会创建request和response对象,request对象中封装请求消息数据

3.tomcat将request和response两个对象传递给service方法,并且调用service方法。

4.在service方法中,可以通过request对象获取请求消息数据,通过response对象设置

响应数据

5.服务器在给浏览器做出响应之前,会从response对象中拿设置的响应消息数据

request和response对象是由服务器创建的,我们使用他们就可以了

request对象是来获取请求消息  response设置响应信息

1.request获取请求数据

1.获取请求行数据

          String getMethod()  //获取请求方式 get post

      String getContextPath()  //获取虚拟目录 /xxx  ※

  String getServletPath  //获取Servlet路径 /demo1

    String getQueryStri        //获取get方式请求参数

    String getRequestURI  //获取请求URI        ※

  String getRequestURL  //获取请求URL

      String getProtocol  //获取协议及版本

        String getRemoteAddr()  //获取客户机的IP地址

URL:统一资源定位符        URI:统一资源标识符

2.获取请求头数据

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

      Enumeration<String> getHeaderNames():获取所有的请求头名称

      user-agent中有浏览器信息

      String.contains比较判断

3.获取请求体数据

请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数

步骤:1.获取流对象  BufferedReader getReader():获取字符输入流,

                    ServletInputStream getInputStram():获取字节输入流,操作所有类型数据


2.再从流对象中拿数据

通用方法

  1.获取请求参数  Get post都可以

      1.String getParameter(String name):根据参数名称获取参数值

      2.String[] getParameterValues(String name):根据参数名称获取参数值的数组

      3.Enumeration<String >getParameterNames() 获取所有请求的参数名称

        while(parameterNames.hasMoreElements()){String name=parameterNames.nextElement()}

      4.Map<String,String[]> getParameterMap() 获取所有参数的Map集合

get在tomcat8已经将get方式乱码问题解决了   

post方法中文乱码解决: request.setCharacterEncoding("uft-8") 防止中文乱码

  2.请求转发

    一种在服务器中资源跳转的方式

      1.通过request对象获取请求转发器对象:RequestDispatcher getRequestDispatcher(String paht)

      2.使用这个对象的forward转发

  转发是一次请求

  3.共享数据

    域对象:一个有作用范围的对象,可以在范围内共享数据

    request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

  方法:

      1.setAttribute(String name,Objecct obj):存储数据

      2.Object getAttitude(String name)通过键获取值

      3.removeAttribute(String name):通过键值对移除对象

  4.获取ServletContext

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容