基于HTTP协议下的,http请求和http响应。
http请求------请求的是服务器中的地方。
1、servlet就是解析http请求和发送http响应。
2、servlet是是一个接口。
List<Student> list=new ArrayList<Student>();---多态---可扩展性好。
ArrayList<Student> list=new ArrayList<Student>();
是一个小程序java applet,运行在web服务器中。
接口和响应来自客户端的基于HTTP协议下的,http请求和http响应。
要使用必须继承GenericServlet 或者 HttpServlet
接口中定义了一方法去初始化servlet(自定义)
3、怎么用?
-----你发送的是什么请求,请求谁?请求的类型。
请求方式get---不具备保密性;数据传送有限制---256个字节。
post---防止乱码,具备信息的安全性;数据转送无限制--理论上无限制。
创建一个类并且继承HttpServlet
<form action="servlet的名称p-add.do" method="post/get">
<input type="text" name="stu_id"/>谁是世界上最帅的男人?
<input type="submit" value="提交"/>
</form>
配置web.xml文件--作用:处理谁找谁的问题?
配置servlet
<serlvet>
<serlvet-name>AddServlet</servlet-name>
<servlet-class>com.it.servlet.AddServlet</servlet-class>
</servlet>
配置servlet映射
<servlet-mapping>
<servlet-name>AddServlet</servlet-name>
<url-patter>/add.do</url-patter>
</servlet-mapping>
(一个serlvet可以有多个映射)
servlet解析请求中携带的问题和问题的类型(get/post)
doGet(){
业务逻辑
};
doPost(){
业务逻辑
};---继承了HttpServlet----doget;dopost---继承中的重写;
添加业务功能;
jsp:action-method---->web.xml---->AddServlet中的doPost();
getParameter("stu_id");---封装----new StudentDAO();
----将数据动态的显示到页面中。-----我们必须在servlet类中自己产生页面。
显示业务功能:
show.do---doPost(){查询到集合---写到我自己产生的页面中};
删除业务逻辑:
del.do---->按照id号码删除(如何在del.do>stu_id=1001)。
post----delStu(String sql="");
4、注意点:
servlet删除后,web.xml文件中的配置文件不会自动删除,必须手动删除。
5、中文乱码:
请求乱码:
reqeust.getEconding...(“utf-8”);
String ss=new String(request.getp....().getBytes("iso-8859-5"),"utf-8");
响应乱码;
response.setContentType("text/html;charset=utf-8");
response.setHeader("", "");
6、重定向---重新请求
1、servlet生命周期----在不同的阶段做了什么事情?
servlet中的方法:init();doGet();doPost();destory();service(2个);
构造器
初始化阶段:---init()---构造器
servlet容器加载servlet(add.do)的时机:
a、默认情况下:当用户第一次请求服务器的时候,servlet被加载;
b、服务器启动的时候,servlet容器加载servet---show.do
借助配置文件,在web.xml<serlvet><load-on-startup>1</load-on-startup></serlvet>
c、servlet类文件被更新后,重新装载servlet.
servlet容器会创建servlet实例-----并且调用初始化方法Init();
注意:在servlet整个生命周期中,初始化方法只被调用一次;
响应客户请求阶段---service,doGet();doPost();
servlet的工作原理:当请求和响应到达 servlet的时候,servlet容器会创建每个
servlet对应的HttpServletRequest和HttpServletResponse对象。然后将这两个对象
交给继承了HTTP协议的service方法,从请求中解析,请求的类型。第一种:继承了HTTP
协议的doGet();doPost();-----业务逻辑处理。
拓展:当值到达service的时候,会以HashTable或者HashMap的形式进行封装。
就是一个键值对。
<select>
<option value="1">安徽省</option>
</select>
HashTable<key,value> name=HashTable<key,value>();
HashTable---线程安全。HashMap线程不安全。
销毁阶段---释放资源的阶段---destory()。
a、当web服务器停止的时候。
b、servlet类文件被更新后,重新装载servlet.