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。
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】