servlet简介
什么是servlet:应用在web服务器或应用服务器上的程序。简单说就是一个类。
有什么作用:主要用于交互式的浏览和修改数据。生成web内容。
如何开发一个servlet
1、实现一个servlet接口
2、继承HttpServlet,重写service(),或者重写doGet(),doPost();
3、在servlet中写完逻辑,
4、在WEB-INF/web.xml中配置servlet
注意:方法名不能写错;抛出异常只能是ServletException和IOException
name
com.renwei.entity.Student
name
错误分析
404:找不到路径 web.xml配置文件
505:service方法有问题
500:系统类的逻辑问题
如何获取参数
1、requets.getParameter(String str);——String
2、request.getParameterValues(String str);——String[]
请求方式
1、get-默认请求方式
2.、post
两种请求方式的特点:
1.get请求会将参数显示在地址栏,
2.post请求不会将参数显示在地址栏,会将参数封装到
实体当中去
3.get请求发送的数据比较小(请求地址栏的长度是有限定的)
4.post请求可以发送大量的数据
5.get请求的数据不安全
6.post请求数据相对get安全
解决乱码
//告诉浏览器显示的编码集格式,和显示格式
response.setContentType("text/html;charset=utf-8");
//告诉服务器按照指定的格式(utf-8)去解码
request.setCharacterEncoding("utf-8");
servlet运行的详细步骤
step1、浏览器依据IP建立与容器的连接
step2、浏览器请求数据打包
step3、容器解析请求数据包,封装对象
step4、容器依据路径找到Servlet创建对象
step5、容器调用Servlet对象的service方法
step6、容器将响应打包发给浏览器
step7、浏览器取出结果,生成页面
生命周期
第一个阶段:实例化 创建servlet对象的过程
创建时机:
1.当容器收到请求后,会创建servlet对象
2.当容器在启动的时候,会创建servlet对象
第二个阶段:初始化 对servlet赋值的过程 调用init方法
第三个阶段:就绪:等待接受请求并处理的过程
第四个阶段:销毁:销毁调用destory()方法实现销毁
转发与重定向
区别一:
重定向时 浏览器上的网址改变转发是浏览器上的网址不变
区别二:
重定向实际上产生了两次请求
转发只有一次请求
重定向:
发送请求 -->服务器运行-->响应请求,返回给浏览器一个新的地址与响应码-->浏览器根据响应码,判定该响应为重定向,自动发送一个新的请求给服务器,请求地址为之前返回的地址-->服务器运行-->响应请求给浏览器
转发:
发送请求 -->服务器运行-->进行请求的重新设置,例如通过request.setAttribute(name,value)-->根据转发的地址,获取该地址的网页-->响应请求给浏览器
区别三:
重定向时的网址可以是任何网址
转发的网址必须是本站点的网址