Servlet的创建
1. 创建一个类并实现Servlet接口。
2. 重写service方法。
3. 在服务器中注册Servlet
协议
1. 一定是双方或多方签订的。
2. 浏览器和服务器之间的通信是基于请求(request)和响应(reponse)的。
3. HTTP协议就是规定浏览器和服务器之间的通信报文格式。(报文首部分为首行和头,统称为首部。)
get/post请求
get请求:请求参数在地址栏,长度有限制。
四种设置方法:(1).直接在URL中设置填写。(2).超链接。(3).在method属性中设置。(4).method属性中不填写时,默认为get
post请求:请求参数在请求报文的请求主题中,长度无限制。
设置方法:通过method属性修改(较安全)
在使用表单提交数据到服务器的时候有两张方式可共选择,一个是post一个是get。可在<form>中的method属性中指定提交的方式。如:<form action="inputForm"method="get">,如果不指定method属性,则会默认该属性为”get”方式。
Get和post都能够提交数据,那么他们有什么不同呢?
不同点一:
通过get方式提交的数据有大小的限制,通常在1024字节左右。也就是说如果提交的数据很大,用get方法就可需要小心;而post方式没有数据大小的限制,理论上传送多少数据都可以。
不同点二:
通过get传递数据,实际上是将传递的数据按照”key,value”的方式跟在URL的后面来达到传送的目的的;而post传递数据是通过http请求的附件进行的,在URL中并没有明文显示。
不同点三:
通过Get方式提交的数据安全性不高,而Post方式的更加安全~
Tomcat服务器
Tomcat服务器是一个免费的开放源代码的Web应用服务器,较轻量级应用服务器,具有处理HTML页面的功能,还是一个Servlet和JavaScript的容器。默认模式为独立的Servlet容器。
Servlet容器
Servlet是运行在服务器中的,运行Servlet的东西,我们称之为Servlet容器。
Servlet的作用:
我们现在写的页面,并没有实质性的作用,也并不能处理用户名和密码,实际上,应该是点击登陆后,将请求提交给Servlet,然后再处理用户名和密码是否正确。
1. 接受请求获取用户信息。
2. 处理,检查是否正确。
3. 如果正确返回一个页面,如果不正确,根据处理结果响应。
也就是:接受请求,处理请求,根据处理结果响应。
Servlet的生命周期:
指的是Servlet对象从创建到销毁的过程。
1. 构造器:public login(){}
当service第一次处理请求时被调用,用来创建service对象,只会调用一次。
2. Init();
在构造器调用之后马上被调用,用来初始化Servlet对象,只会调用一次。
3. service();
用户再次发送请求,service都会被调用,调用多次,用来处理用户请求。
4. destroy();
Servlet对象销毁前被调用,用来执行一些收尾工作,只会执行一次。
乱码问题:
response.setCharacterEncoding("UTF-8");
HttpServlet
间接实现了Servlet接口,通过继承HttpServlet实现了一个Servlet时,我们只需要根据处理请求的类型(method的值)来重写不同方法,处理get请求,重写doGet请求;处理post请求,重写doPost请求。
HttpServletResponse转发和重定向
转发:转发时浏览器地址栏不会发生改变。
转发时浏览器发送了一次请求。
转发时发生在服务器的内部,浏览器不知道转发的发生。
String con = request.getContextPath();//获取效应器
RequestDispatcher rd = request.getRequestDispather(“Tomcat”);//获取派发器
rd.forword(request,reponse);//发起转发
重定向:
重定向时地址栏发生改变。
重定向浏览器发送了两次请求。
重定向时发生在浏览器端的,浏览器知道重定向的发生。
Reponse.sendRedireat(“Test.html”);