Servlet的相关知识

Servlet的快速入门:
1.创建javaEE项目
2.定义一个类,实现servlet接口
3.实现接口中的抽象方法
4.配置Servlet在web.xml中配置

Servlet的执行原理:
1、当服务器接受到客户端浏览器的请求后,会接卸请求URL路径,获取访问的Servlet的资源路径
2、查找web.xml文件,是否有对应的标签体内容(在Servlet3.0后,支持注解配置,可以不需要web.xml)
3、如果有,则在找到对应的全类名
4、tomcat会将字节码文件加载进内存,并且创建其对象
5、调用其方法

http协议:超文本传输协议
1、基于tcp/IP协议
2、安全
3、无状态,每次请求都是独立的
4、基于请求/响应模式,一次请求一次响应
5、默认端口:80

请求中文乱码解决:
1、使用String进行数据重新编码
uname=new String(uname.getBytes(“iso8859-1”),“utf-8”);
2、使用公共配置
get方式:
步骤一:req.setCharacterEncoding(“utf-8”);
步骤二:
在tomcat的目录下的conf目录中修改server.xml文件:在Connector标签中增加属性 useBodyEncodingForURI=“true”
post方式:
req.setCharacterEncoding(“utf-8”);
Servlet流程总结:
浏览器发起请求到服务器(请求)
服务器接受浏览器的请求,进行解析,创建request对象存储请求数据
服务器调用对应的servlet进行请求处理,并将request对象作为实参传递给servlet的方法
servlet的方法执行进行请求处理
//设置请求编码格式
//设置响应编码格式
//获取请求信息
//处理请求信息
//创建业务层对象
//调用业务层对象的方法
//响应处理结果

请求转发学习:
作用:实现多个servlet联动操作处理请求,这样避免代码冗余,让servlet的职责更加明确。
使用:
req.getRequestDispatcher(“要转发的地址”).forward(req, resp);
地址:相对路径,直接书写servlet的别名即可。
特点:
一次请求,浏览器地址栏信息不改变。
注意:
请求转发后直接return结束即可。
reuqet作用域:
解决了一次请求内的servlet的数据共享问题

重定向:
解决了表单重复提交的问题,以及当前servlet无法处理的请求的问题。
使用:
resp.sendRedirect(String uri);
示例:
resp.sendRedirect("/login/main");
特点:
两次请求,两个request对象。
浏览器地址栏信息改变

时机:

  1. 如果请求中有表单数据,而数据又比较重要,不能重复提交,建议使用重定向。

  2. 如果请求被Servlet接收后,无法进行处理,建议使用重定向定位到可以处理的资源

发布了85 篇原创文章 · 获赞 13 · 访问量 9113

猜你喜欢

转载自blog.csdn.net/Alingyuzi/article/details/104826326