HTTP协议&&Server
HTTP协议

  • 什么是协议:

    双方在交互、通讯的时候,遵守的一种规范、规则。

  • http协议

    针对网络上的客户端与服务器之前在执行HTTP请求的时候,遵守的一种规范。 其实就是规定了客户端在访问服务端的时候要带上那些东西,服务器返回数据的时候,也要带上什么东西。
    http请求数据解释
    请求的数据里面包含三个部分的内容:请求行、请求头、请求体

    • 请求行:

    POST:请求方式,以post去提交数据。
    GET: get请求,
    service方法、doget方法、dopost方法(优先处理service方法)!!!

注意
如果在腹泻的service方法中调用来的父类的service方法(super.service(arg0,arg1)),则service方法处理完后,会再次根据请求方式响应doGet和doPost方法执行。所以,一般情况下,我们是不覆写的service中调用弗雷德servi方法的,避免405出现。
post和get请求的区别
1、请求的路径不同,post请求,在url后面不跟上任何数据。get请求,在地址后面有数据。
2、带上的数据不同。post请求会使用流的方式写请求。get请求是在地址栏上跟数据。
3、由于post请求使用流的方式写数据,所以 一定需要一个Content-Length的头来说明数据的长度有多少。
* 请求头:
>Accept:客户端向服务器表示,我能支持什么类型的数据。
>Referer:真正请求的地址路径
>Accept-Language:支持语言格式
>User-Agent:用户代理,当前来访问的客户端信息
>Content-Type:提交的数据类型,经过urlencoding编码的额form表单的数据。
* 请求体:
* 响应行:
HTTP/1.1 200 OK
状态码:
200:成功。正常处理,得到数据。
403:for biddern 拒绝。
404:Not Found
405:请求方式不支持
500:内部服务器异常
* 响应头:
* Sever :服务器是哪一种类型。 Tomcat
* Content-Type:
servlet
servlet是运行在Web服务器中的小型java程序。servlet通常通过HTTP(超文本传输协议)接受和响应来自Web客户端的请求。
更多的是配合动态资源来做。
新建web工程
1、新建web项目,运行服务器
2、测试运行web工具
* 新建一个类,实现Servlet接口
* 配置servlet
servlet生命周期
>从创建到销毁的一段时间

  • 生命周期的方法

从创建到销毁,所调用的那些方法。

为什么需要有这个ServletConfig?
1、未来我们 自己开发的而应用,使用到的技术,或者一些代码,我们不会,但是有人写出来了,他的代码放置在了自己的Servlet类里面。
2、刚好这个servlet里面需要一个数字或者叫做变量值。但是这个值不能是固定了。所以要求使用 到这个servlet的goon公司,在注册servlet的时候,必须要在web.xml里面,声明init-params。

00f3f5179ca8c639450372d8199d9517.png
a111848ffa8894a3c80df5311e4e49e2.png

request对象学习:
作用:request对象中封存了对当前请求的所有请求信息
使用:获取请求头数据
获取请求行数据
获取用户数据

    1、设置响应编码格式
    resp.setContentType(text/html;charset=utf-8);
    2、获取请求信息
    String uname=req.getParameter("uname")
    String password=req.getParameter("password");
    3、处理请求信息
    
    4、响应处理结果
    
    
    PageServlet-->LoginServlet--->LoginServiceImpl
    JDBC:
        1、声明JDBC对象
        Connnection conn=null
        PrepaeedStatement pa=null;
        ResultSet rs=null;
        2、加载驱动
        Class.forNma("com.mysql.jdbc.Driver");
        3、获取连接对象
        conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名","root","password");
        4、创建sql命令
        String sql="select *from user where uname=? and pwd=?";
        5、创建sql命令对象
        ps= conn.prepareStatement(sql);
        6、给占位符赋值
        ps.setString(1,uname)
        ps.setString(2,pwd)
        7、执行
        rs=ps.executeQuery();
        8、遍历执行结果
        while(rs.next()){
        u=new  User
        us.setUid(rs.getInt("uid"))
        u.setUname(rs,getString("uname"))}
        9、关闭执行结果
        rs.close()
        ps.close()
        conn.close()
        10、返回

乱码问题
1、使用String进行数据编码重新编码
uname =newString(uname.getBytes(“iso8859-1”),“utf-8”)
get方式:
req.setCharacterEncoding(“utf-8”);
在tomcat的目录下的conf目录中修改server.xml文件:
在Connector标签中增加属性useBodyEncodingForURI=“tr…”
post方式
req.setCharcaterEncoding(“utf-8”)

Cookie学习:
作用:解决了发送的不同请求的数据共享问题。
使用:1、创建cookie对象
Cookie c =new Cookic(String name,String value);
2、响应Cookie信息给客户端
resp.addCookie©;
注意:
一个cookie对象存储一条数据。多条数据可以多创建几个 Cookie对象进行存储。
特点:
浏览器的数据存储技术。
存储的数据声明在服务器端。
临时存储:存储在浏览器的运行内存中,浏览器关闭即失效。
定时存储:设置了Cookie的有效期,存储在客户端的硬盘中,在有效期内符合路径要求的请求都会附带该信息。
默认cookie信息存储好之后,每次请求都会附带,除非设置有效路径。

四大域对象

面试题:javaweb中的四大域对象有哪些?【page,request,session,application】
jsp的九大内置对象有哪些?【request,response,out,session,page,config,exception,pageContext,application】