JAVA-WEB-Servlet

JavaWeb

Servlet

概念

  • Server Applet 的简称,是服务器端的程序(代码,功能实现)。
  • 可交互式处理和响应用户请求。
  • 动态网页技术。
  • javaWeb开发的技术基础。

作用

  • 接收客户端请求,完成操作。
  • 动态生成网页。网页数据可变。
  • 将包含操作结果的动态网页响应给客户端。

Servlet核心

Servlet和的核心接口和类

  • 除了实现Servlet接口外,还可以通过继承 genericServlet 和 HttpServlet的实现。

Servlet接口

  • 所有的servlet都会间接或直接与该接口发生关系
  • 核心方法:
    1.init(ServletConfig config):初始化。
    2.ServletConfig getServletConfig ():获取Servlet的初始化参数。
    3.service(ServletRequest request, ServletResponse response):请求和响应,方法已经过时。
    4.String getServletInfo():获取网页说明信息。
    5.destory():关闭Servlet

Servlet 配置方法

配置XML文件
在这里插入图片描述
在这里插入图片描述

  • < servlet>标签
  1. < servlet-name >标签中的是创建的Servlet文件名称。
  2. < servlet-class >标签中的是 创建的Servlet文件的包路径。
  • < servlet-mapping > 标签
    1.< servlet-name >标签中的是创建的Servlet文件名称。
    2.< url-pattern >标签中的是Servlet文件的访问路径URL。

注解配置

  • Servlet 3.0后推荐使用,通过@WebServlet注解来配置信息。

Sevlet的生命周期

概念

  • 在这里插入图片描述

Servlet的特性

线程安全

  • Servlet在被访问后会创建一个Servlet对象。
  • Tomcat服务器里面可以同时并发访问同一个Servlet.
  • 如果涉及到修改成员变量的话,就可能产生线程安全的问题。

如何解决线程安全问题

  • 用synchronize()。
  • 实现 singleThreadModel接口。
  • 尽量使用局部变量。

状态管理

在这里插入图片描述

Http协议

概念

  • 超文本传输协议。
  • 是一个基础请求,响应的 应用层协议,运行于TCP基础之上。

特点

  • 特点基础浏览器和服务器模式。
  • 简单 、快速、灵活、无连接。

Http 中 Request 请求和 Response响应的区别

  • 我的在创建Servlet时,会覆盖service方法,生成 doPost(HttpServletRequest request, HttpServletResponse response) 方法和 doGet(HttpServletRequest request, HttpServletResponse response) 方法,并且需要重写doPost 和 doGet 方法
  • request 代表请求,response代表响应
  • goPost :用于post 请求
  • doGet : 用于 get 请求
  • doPut : 用于 put 请求
  • doDelete : 用于 delete请求

request

概念

  • 在Servlet中t一般用于处理客户端请求。
  • request对象中包含了客户端中请求的所有内容。
    常用方法
  • String getParameter(String name);根据表单组件名称获取相应的数据。
  • void setCharacterEncoding(String character) ;指定每个请求的编码格式。

Post请求乱码

  • 客户端以浏览器设置的编码格式将数据传到服务端。
  • 处理乱码的方法为request.setCharacterEncoding(String character) ;
  • 或者将浏览器和服务端的编码格式统一。

response

概念

  • response 响应用户请求并向客户端传输信息。
  • response对象包含了项目目标的所有内容。

常用方法

  • setHeader(name,value); 设置响应头信息。
  • setContentType(String);设置响应文件类型以及编码格式。
  • void setCharacterEncoding(String character) ; 设置服务器响应内容的编码格式。
  • getWriter();获取字符输出流。如: response.getWriter().print();

解决中文乱码

  • 设置服务器的响应编码格式:response.setCharacterEncoding(“UTF-8”);
  • 设置客户端响应头内容的文件类型以及编码格式:response.setHeader(“ContentType-type”,“text/html;charset=UTF-8”);

转发和重定向

转发

概念

  • 转发的作用在服务端。
  • 将请求转发给服务器上的其他资源,以共同完成一次请求处理。

实现

  • request.getRequestDispatcher("/URL?数据").forward(request,response );
  • 转发是服务器内的一次请求,不换改变地址栏,属于同一次请求。

数据传递

  • 在URL后跟着数据,如==“FindAllSeaFoodByClassServlet?seaFoodClass=特色干货& userId=12”==
  • 利用setAttribute(“key”,value);存储数据,getAttribute(“key”);来获取数据,如:request.setAttribute(“key”,value); and request.getAttribute(“key”);
    特点
  • 转发是服务器行为
  • 转发,浏览器访问地址不变,只做了一次请求
  • 转发两次之间的传输数据不会丢失,可以通过request进行数据获取。
  • 转发只能给同一个web应用中的组件。
重定向

概念

  • 重定向的作用在客户端。
  • 客户端请求服务器,服务器响应给客户端一个新的地址进行请求。

实现

  • 通过 response.sendRedirect(URL);

注意

  • 使用Redirect跳转时,地址发送变化,属于多次请求。

数据传递

  • 重定向中,response没有作用域,两次请求间的request不能进行数据传递。
  • 可以通过URL进行拼接进行数据传递,response.sendRedirect(“URL+msg&msg2”);
  • 获取数据可以通过 request.getParameter(String name);

特点

  • 重定向是客户端的行为。
  • 浏览器至少做了两次请求。
  • 两次请求之间的request不能进行数据传递。
  • 重定向后,请求地址发送改变。
  • 可以指向任何资源。
总结
  • 在需要进行数据转发时,用request.forward();进行跳转。不建议用sendRedirect();

表单提交方式 POST 和 GET 方法的区别

POST请求

  • post方法是把提交的数据放在HTTP包的Body中。
  • 密文传递数据,数据量大,安全,一般用于表单提交。
  • 效率相对没有GET高。
  • 对应的Servlet中的是doPost()方法。

GET请求

  • GET提交的数据会放在URL之后会以?分割URL与传输数据,参数之间以&相连。如:“FindAllSeaFoodByClassServlet?seaFoodClass=特色干货& userId=12”
  • GET方式明文传递,数据量小,不安全。
  • 效率高,浏览器默认请求方式为GET请求。
  • 对应的Servlet方法为doGet()方法。

Cookie

  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述
  • 在这里插入图片描述

总结
在这里插入图片描述

Session

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值