一、Servlet交互
1、Servlet三大职责
-
接收请求参数(封装) ;
-
调用业务方法处理业务(去调用业务service层);
-
响应请求(跳转页面或其他Servlet);
2、跳转的两种方式【重点】
请求转发(forward) | 重定向(redirect) | |
---|---|---|
访问 WEB-INF | √ | × |
传参数 | √ | × |
访问外网 | × | √ |
重复提交的问题 | 有 | 无 |
路径变化 | 无 | 有 |
代码 | req.getRequestDispatcher(path).forward(req, resp); | resp.sendRedirect(path) |
二、JSP学习
1、JSP基本认识
JSP(java server page):java服务器端(动态)网页,JSP就是Java中用来做动态网页的技术;锁业在JSP中既可以写JAVA代码,也可以写HTML代码
注:JSP就是Servlet,服务器会把JSP搞成一个Servlet的类
2、JSP的编译原理、语法
编译过程:
语法:
- 两种注释注释:
<!-- 这是HTML注释,在前端浏览器可以看到 -->
<%-- 这是JSP注释,给程序员看的,前端浏览器是看不到的 --%>
- java代码写法
<%
这里写Java代码
%>
<%=表达式(输出数据到页面上) %>
<%=new java.util.Date().toLocaleString() %>
<%! 定义成员变量 %>
3、三大指令
page
:页面指令 :当前页面的一些配置include
:包含指令 :可以包含其它页面taglib
:标签指令(明天学习)
4、page指令
格式:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" ... >
language="java"
:语言只有java,意义不大
contentType="text/html; charset=UTF-8"
:输出的页面类型,相当于在Servlet里面写:resp.setContentType("text/html;charset=utf-8")
import
: 导包
errorPage
: 如果出错了,指向某个页面
isErrorPage
:这个页面是否是一个错误页面
- 如果值是true,我们后面报500的时候就可以在页面看到错误信息
5、include指令
可以把一个页面的内容包含到另外一个页面
注意:一般被包含的jsp文件我们会取名为 jspf(jsp片断)
<%@ include file="/include/head.jspf" %>
6、四大作用域
作用域对像都是容器,数据放在那个作用域,就只能在对应作用域取获取,没有包含关系,大小关系指的仅仅是存放对象的存活时间。
application
: 活到项目死亡 ,一般可以用于计算当前多少人在访问我们的网站- 注意:
appcation
就是ServletContext
- 在JAVA代码中获取上下文路径
getContextPath()
- 获取当前的真实路径
getRealPath("/")
- 注意:
session
:一次会话, 活到浏览器关闭,一般用于保存登录用户- 默认只活半小时,你的浏览器有半个小时没有碰
request
: 一次请求 (用得最多)pageContext
: 当前页面
7、九大内置对象
内置对象 | 类 | |
---|---|---|
application | ServletContext | 全局对象 |
session | HttpSession | 会话对象 |
request | HttpServletRequest | 请求对象 |
pageContext | PageContext | 当前页对象 |
response | HttpServletResponse | 响应对象 |
out | JspWriter | 输出对象 |
page | this | 当前对象 |
config | ServletConfig | 配置对象 |
exception | 异常对象 |