Http协议

** B/S**

Servlet

Servlet编写

案例:
public class Servlet1 extends HttpServlet {protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");PrintWriter pw = response.getWriter();pw.append("<h1>我们的第一个servlet</h1>");}
}

xml中配置Servlet

步骤:
1.  将Servlet 配置到web.xml中, 并起别名<servlet><servlet-name>别名</servlet-name><servlet-class>类的全称(包名.类名)</servlet-class></servlet>
2.  使用Servlet别名, 映射一个或多个网址<servlet-mapping><servlet-name>别名</servlet-name><url-pattern>/映射地址</url-pattern></servlet-mapping>  .....<servlet-mapping><servlet-name>别名</servlet-name><url-pattern>/映射地址2</url-pattern></servlet-mapping>  映射完毕后, 访问此servlet的方式: http://ip地址:端口号/项目名/映射地址
案例: <servlet><servlet-name>s1</servlet-name><servlet-class>cn.xdl.demo.Servlet1</servlet-class></servlet><servlet-mapping><servlet-name>s1</servlet-name><url-pattern>/666.php</url-pattern></servlet-mapping>

Servlet生命周期

生命周期 在Servlet中, 存在三个方法的体现:

  • init方法 : 当此方法被调用时, 表示对象已创建, 且初始化完成! 我们常在此方法中初始化 一些资源 !
  • service方法 : 当被调用时, 表示来了一个客户端的请求, 此方法每次都执行在一个新的线程中 !
  • destroy方法: 当此方法被调用时,表示Servlet即将被销毁 ! 我们常在此方法中 释放资源 !

乱码问题

请求时乱码

方式一:可适用于所有问题 引起的乱码

原理:  将乱码的文字, 重新变为字节数组, 再按照我们支持的编码重新组装 !
步骤1.    将接收到的文字, 按照ISO-8859-1编码打碎成字节数组byte[] b = 乱码文字.getBytes("ISO-8859-1");
步骤2.    将打碎后的字节数组, 按照UTF-8组装String text = new String(b,"UTF-8");
简化: String text = new String(乱码文字.getBytes("ISO-8859-1"),"UTF-8");

方式二: 只能解决POST乱码问题, 用于在获取数据之前, 设置请求体的编码格式

request.setCharacterEncoding("UTF-8");

响应时乱码

在处理响应时数据时, 无论时get/post请求, 方式都一致 ! 一定要在获取输出流之前!
方式一:

设置网页内容类型 , 并设置网页编码 , 不建议使用
response.setContentType("text/html;charset=utf-8");

方式二:

设置文字编码为UTF-8
response.setCharacterEncoding("UTF-8");

请求转发和重定向

Cookie和Session

Cookie

常用方法:

如何将Cookie设置到响应的消息头: response.addCookie(Cookie cookie);
如何从请求的消息头中获取Cookie:
因为服务器可以给浏览器多个Cookie, 所以得到的是一个Cookie数组
Cookie[] cookies = request.getCookies();

Session

常用方法:
(session是JSP四大域对象之一)

  1. 设置属性: setAttribute(String key,Object value);
  2. 获取属性: Object value = getAttribute(String key);
  3. 删除属性: removeAttribute(String key);
  4. 销毁Session: invalidate();

设置Session存活时长:

方式一: 修改所有的session默认时长

修改tomcat目录下的conf文件夹下的 web.xml
<session-config><session-timeout>数字类型:  分钟</session-timeout>
</session-config>

方式二:修改单个session存活时长:

使用session对象, 调用setMaxInactiveInterval(int 秒);

JSP

JSP即是Java Server Pages的简称

JSP三大指令

page指令

用来快速的描述JSP页面的信息, 用来对JSP页面进行配置:
常用属性:

<%@page language=“script language”|--   语言 ,一般为javaextends=“className”  |--可以指定JSP在生成Java文件时, 文件所继承的Java类*import=“importList”  |--导包列表 ,可以在参数中导入多个包, 多个包之间使用逗号隔开buffer=“none|kb size”|   --none:不缓冲,默认8ksession=“true|false” |   --是否可以使用session,默认trueautoFlush=“true|false”  --缓冲器是否自动清除,默认trueisThreadSafe=“true|false”|--当前JSP代码执行区是否为线程安全的*errorPage=“errorPageUrl” |--指定产生错误后, 处理错误的页面*isErrorPage=“true|false” |--表示当前页面是否为处理错误的页面contentType=“contentTyepInfo”|--描述网页的内容类型 和 编码格式
%>

导包案例:

<%@page import="java.util.HashMap,java.util.ArrayList" %>

错误页面处理:

在产生错误的页面中加入page指令, errorPage属性中指定错误处理页面
在错误处理的jsp文件中, 指定isErrorPage为true , 可以直接操作一个叫做exception的对象在操作exception时, 注意有可能为null(当用户直接访问错误页面时)

处理项目中的错误码

使用上述的page指令, 无法处理404错误, 只有当程序出现BUG时, 才可以处理异常 !
想要处理404异常, 需要告知tomcat , 当在本项目中用户访问出现404以后, 跳转到指定页面:

**在项目的web.xml中添加如下节点: **

<error-page><error-code>404</error-code><location>/error.jsp</location>
</error-page>
<error-page><error-code>500</error-code><location>/error.jsp</location>
</error-page>

include指令

用来在一个JSP文件中, 引入另一个JSP程序 或 HTML文件 !
格式:

<%@include file="文件路径" %>

JSP文件 在引擎转换时, 会将引入的文件代码复制粘贴到include指令的位置, 然后统一进行转换与编译操作(转换为一个Java文件)!

include动作

用于在一个JSP文件中, 引入另一个JSP程序 或 HTML文件 !
格式:

<jsp:include page="文件地址" flush="true"/>

include动作引入的JSP文件 , 在转换为.java的时候, 是单独转换的 ,只有在代码执行到include动作时, 才会编译被引入的文件, 动态载入!

taglib指令

JSP内置对象

隐含对象 类型 作用
out JSPWriter 用来向客户端进行字符的响应
request HttpServletRequest 请求对象, 包含Http协议中请求数据
response HttpServletResponse 响应对象
session HttpSession 会话对象, 用来在一次会话中对单个用户 进行数据的共享与会话的跟踪
application ServletContext Servlet上下文 , 每个应用在启动时会创建且只创建一个对象, 在应用关闭时,对象被释放. 用来在当前项目中Servlet之间进行数据的共享与通信
pageContext PageContext 页面的上下文, 用于在当前页面进行数据的共享 , 在设计9大内置对象时, 将所有其他内置对象封装在了PageContext中
config ServletConfig 配置对象
page Object 当前页面本身
exception Throwable 当page指令中 isErrorPage为true时 才会产生此对象 , 用于收集其他页面产生的异常信息

四大域对象

EL和JSTL

Filter&Listener组件


在web.xml文件中配置Filter组件和Servlet配置基本一致
不使用注解在web.xml中配置Listener

<listener ><listener-class>包名 + 类名</listener-class>
</listener>

AJAX

AJAX优点

作用:(1)异步请求和响应处理(2)页面局部刷新处理
优点:

  • 减少页面整体刷新,提升用户体验(局部刷新)
  • 减少交互的数据量,提升程序性能
  • 以异步模式处理请求,较少用户操作等待时间,增 强了用户的操作连续性(异步交互)

AJAX技术应用步骤

  • 创建XMLHttpRequest对象

  • 调用open方法,创建请求

  • 设定onreadystatechange事件函数,用于 响应处理

  • 调用send方法发送请求

      // 发送请求之前的准备 对象.open(请求方式,请求路径,是否异步)  如    xhr.open('get','getDate.do',true);// 注册请求处理函数 xhr.onreadystatechange=function(){// 请求响应完成  并且  http 状态 是 200if(xhr.readyState == 4 && xhr.status==200){// 获取请求响应的数据var text = xhr.responseText;} };  // 发送请求 xhr.send(null);
    

AJAX+Json应用

Json

  • JSON (JavaScript Object Notation)是 JavaScript语言中的一种对象类型。
  • JSON的好处是易于阅读和JavaScript解析
  • 当客户端和服务器端交互大量数据时,使用JSON 格式传输可以简化客户端和服务器端的编程

Jquery和AJAX

jQuery对ajax请求的创建、发送和响应都进 行了相应的封装,同时也考虑 了浏览器的兼容性问题

$.ajax()函数

$.ajax({     url :请求 地址,     type :请求 方式,     async :默认 true  false 表示同步 请求,     data :请求 参数,     dataType :服务器返回的 数据类型,      success : 服务器 正常 处理时执行的 回调函 数,     error : 服务器处理出错时执行的 回调函 数,
});

$.get()函数

$.get(url,data,function,datatype)  url:请求地址  data:请求参数  dataType:服务器返回的数据类型  function:服务器正常处理时执行的回调函数

$.post()函数

$.post(url,data,function,datatype)  url:请求地址  data:请求参数  dataType:服务器返回的数据类型  function:服务器正常处理时执行的回调函数

$.getJSON函数

$.getJSON(url,data,function)  url:请求地址  data:请求参数  function:服务器正常处理时执行的回调函数

load()函数

$obj.load(url,data,function)
url:请求地址
data:请求参数
function:ajax请求处理完毕后执行的回调函数 功能:利用ajax发送一个url请求,将返回结果填充到$obj元素中 (常用于页面引入)

那年学过的web后端笔记相关推荐

  1. 那年学过的Web前端笔记

    XML XML中的注意事项: HTML CSS JavaScript 控制台对象console 普通日志输出: console.log(文本); 错误信息输出: console.error(文本); ...

  2. 【Web后端笔记】SQL Server与java数据类型对应

    编号 数据库类型 JDBC类型 JDBC索引 描述 1 int java.lang.Integer 4   2 varchar java.lang.String 12   3 char java.la ...

  3. 那年学过的Quartz框架笔记

    Quartz是什么? Quartz是一个任务调度框架,是完全由java开发的一个开源的任务日程管理系统 Quartz特点 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求: 灵活 ...

  4. 跟小甲鱼学Web开发笔记07

    跟小甲鱼学Web开发笔记07 格式化大作战 加粗效果 strong元素 b元素 斜体效果 em元素 i元素 使用css代替b和i元素 久的不去新的不来 del和ins元素 s元素 u元素 mark元素 ...

  5. Java web 2022跟学尚硅谷(十) 后端基础 书城

    Java web 2022跟学尚硅谷十 后端基础 书城 验证码kaptcha和缓存cookie 简单了解cookie 步骤 简单创建cookie的样例 代码 CookieServlet01 hello ...

  6. Spring Boot笔记-目前对Web后端开发的认识

    目录 基本概念 代码与实例 基本概念 此篇博文记录了本人目前对web后端开发的认识. Web开发一般的思路: 先dao再service最后controller 而dao又分为dataobject和re ...

  7. windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux

    菜鸟学Linux 第103篇笔记 pxe自动化安装linux 内容总览 linux的系统安装 kickstart文件的组成部分 DHCP (Dynamic Host Configuration Pro ...

  8. 菜鸟学Linux 第052篇笔记 httpd-install and section2

    菜鸟学Linux 第052篇笔记  httpd-install and section2 apache 17years NCSA, httpd A Patchey Server = Apache FS ...

  9. web后端开发学习路线_学习后端Web开发的最佳方法

    web后端开发学习路线 My previous article described how you can get into frontend development. It also discuss ...

最新文章

  1. keyshot分辨率多少合适_惠普打印机型号有哪些 惠普打印机多少钱【详解】
  2. docker 简单入门(一)
  3. 远程连接计算机用户名怎样修改,更改服务器远程桌面用户名
  4. 5款实用的硬盘、SSD固态硬盘、U盘、储存卡磁盘性能测试工具绿色版
  5. C++函数返回多个变量
  6. vs当前文件的函数索引_VM实战(六) - 通过案例深入学习class文件结构原理
  7. Spring 依赖注入(DI)
  8. java泛型中的标记,Java泛型中的标记符含义
  9. 2019-03-19-算法-进化(报数)
  10. Apache日志记录组件Log4j出现反序列化漏洞 黑客可以执行任意代码 所有2.x版本均受影响...
  11. c语言循环嵌套说课,C语言FOR循环说课稿.doc
  12. 男人这辈子挺难的 ^^^
  13. Vue之路由beforeEach
  14. Jenkins + Docker 简单部署 node.js 项目
  15. bay——RAC_ASM ORA-15001 diskgroup DATA does not exist or is not mounted.docx
  16. win7win8 64位汇编开发环境合集安装与设置
  17. 仿站和模板建站的区别_不懂建站、资金有限?外贸soho建站先看这几条建议
  18. STM32F103RB 实作笔记(三)- LED 7 节显示(正点原子 STM32F103 nano开发板)程式解析(上)
  19. aardio设置透明窗体说明
  20. Android UI自动化工具-SoloPi

热门文章

  1. 如果微信被运维删库、跑路,会造成什么恐怖的后果?
  2. Linux磁盘、内存、CPU、进程
  3. Zookeeper本地安装配置(windows)
  4. linux下怎么查看一个动态库链接了其他哪些库
  5. MySql笔记(一)
  6. 查看端口占用情况lsof,并关闭对应进程kill
  7. 前端面试送命题(一)-JS三座大山
  8. js控制时间显示格式
  9. javascript Date
  10. Oracle全备增量备份脚本,ORACLE-RMAN:备份脚本(全库,增量)