** B/S**
案例:
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("我们的第一个servlet
");
}
}
步骤:
1. 将Servlet 配置到web.xml中, 并起别名
别名
类的全称(包名.类名)
2. 使用Servlet别名, 映射一个或多个网址
别名
/映射地址
.....
别名
/映射地址2
映射完毕后, 访问此servlet的方式:
http://ip地址:端口号/项目名/映射地址
案例:
s1
cn.xdl.demo.Servlet1
s1
/666.php
生命周期 在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设置到响应的消息头:
response.addCookie(Cookie cookie);
如何从请求的消息头中获取Cookie:
因为服务器可以给浏览器多个Cookie, 所以得到的是一个Cookie数组
Cookie[] cookies = request.getCookies();
常用方法:
(session是JSP四大域对象之一)
方式一: 修改所有的session默认时长
修改tomcat目录下的conf文件夹下的 web.xml
数字类型: 分钟
方式二:修改单个session存活时长:
使用session对象, 调用setMaxInactiveInterval(int 秒);
JSP即是Java Server Pages的简称
用来快速的描述JSP页面的信息, 用来对JSP页面进行配置:
常用属性:
<%@page language=“script language”|-- 语言 ,一般为java
extends=“className” |--可以指定JSP在生成Java文件时, 文件所继承的Java类
*import=“importList” |--导包列表 ,可以在参数中导入多个包, 多个包之间使用逗号隔开
buffer=“none|kb size”| --none:不缓冲,默认8k
session=“true|false” | --是否可以使用session,默认true
autoFlush=“true|false” --缓冲器是否自动清除,默认true
isThreadSafe=“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中添加如下节点: **
404
/error.jsp
500
/error.jsp
用来在一个JSP文件中, 引入另一个JSP程序 或 HTML文件 !
格式:
<%@include file="文件路径" %>
JSP文件 在引擎转换时, 会将引入的文件代码复制粘贴到include指令的位置, 然后统一进行转换与编译操作(转换为一个Java文件)!
用于在一个JSP文件中, 引入另一个JSP程序 或 HTML文件 !
格式:
include动作引入的JSP文件 , 在转换为.java的时候, 是单独转换的 ,只有在代码执行到include动作时, 才会编译被引入的文件, 动态载入!
隐含对象 | 类型 | 作用 |
---|---|---|
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时 才会产生此对象 , 用于收集其他页面产生的异常信息 |
在web.xml文件中配置Filter组件和Servlet配置基本一致
不使用注解在web.xml中配置Listener
包名 + 类名
作用:(1)异步请求和响应处理(2)页面局部刷新处理
优点:
创建XMLHttpRequest对象
调用open方法,创建请求
设定onreadystatechange事件函数,用于 响应处理
调用send方法发送请求
// 发送请求之前的准备
对象.open(请求方式,请求路径,是否异步) 如 xhr.open('get','getDate.do',true);
// 注册请求处理函数
xhr.onreadystatechange=function(){
// 请求响应完成 并且 http 状态 是 200
if(xhr.readyState == 4 && xhr.status==200){
// 获取请求响应的数据
var text = xhr.responseText;
}
};
// 发送请求
xhr.send(null);
jQuery对ajax请求的创建、发送和响应都进 行了相应的封装,同时也考虑 了浏览器的兼容性问题
$.ajax({
url :请求 地址,
type :请求 方式,
async :默认 true false 表示同步 请求,
data :请求 参数,
dataType :服务器返回的 数据类型,
success : 服务器 正常 处理时执行的 回调函 数,
error : 服务器处理出错时执行的 回调函 数,
});
$.get(url,data,function,datatype)
url:请求地址
data:请求参数
dataType:服务器返回的数据类型
function:服务器正常处理时执行的回调函数
$.post(url,data,function,datatype)
url:请求地址
data:请求参数
dataType:服务器返回的数据类型
function:服务器正常处理时执行的回调函数
$.getJSON(url,data,function)
url:请求地址
data:请求参数
function:服务器正常处理时执行的回调函数
$obj.load(url,data,function)
url:请求地址
data:请求参数
function:ajax请求处理完毕后执行的回调函数 功能:利用ajax发送一个url请求,将返回结果填充到$obj元素中 (常用于页面引入)