Servlet
什么是 Servlet:Servlet 是 Java Web 开发的基⽯,与平台⽆关的服务器组件,它是运⾏在 Servlet 容器/Web 应⽤服务器/Tomcat,负责与客户端进⾏通信。
public class MyServlet01 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
// 初始化
}
@Override
public ServletConfig getServletConfig() {
return null;
}
@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
// 主要的方法,一般是在这个里面操作
}
@Override
public String getServletInfo() {
return null;
}
@Override
public void destroy() {
// 销毁
}
}
浏览器不能直接访问 Servlet ⽂件,只能通过映射的⽅式来间接访问 Servlet,映射需要开发者⼿动配置,有两种配置⽅式。
- 基于 XML ⽂件的配置⽅式。
<servlet>
<servlet-name>hello</servlet-name> // 名字
<servlet-class>top.lanhuli.demo1.MyServlet01</servlet-class> // 全路径类名
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name> // 名字需要通上面一致
<url-pattern>/mydemo1</url-pattern> // URL访问路径
</servlet-mapping>
- 基于注解的⽅式。
@WebServlet("/mydemo1")
public class MyServlet01 implements Servlet {}
Servlet 的⽣命周期
- 当浏览器访问 Servlet 的时候,Tomcat 会查询当前 Servlet 的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在,直接执⾏第 3 步。
- 调⽤ init ⽅法完成初始化操作。(⽆参构造函数只调⽤⼀次,创建对象。init 只调⽤⼀次,初始化对象。)
- 调⽤ service ⽅法完成业务逻辑操作。(service 调⽤ N 次,执⾏业务⽅法。)
- 关闭 Tomcat 时,会调⽤ destory ⽅法,释放当前对象所占⽤的资源。(destory 只调⽤⼀次,卸载对象。)
JSP
JSP 本质上就是⼀个 Servlet,JSP 主要负责与⽤户交互,将最终的界⾯呈现给⽤户,HTML+JS+CSS+Java 的混合⽂件。
当服务器接收到⼀个后缀是 jsp 的请求时,将该请求交给 JSP 引擎去处理,每⼀个 JSP ⻚⾯第⼀次被访问的时候,JSP 引擎会将它翻译成⼀个 Servlet ⽂件,再由 Web 容器调⽤ Servlet 完成响应。
单纯从开发的⻆度看,JSP 就是在 HTML 中嵌⼊ Java 程序。
具体的嵌⼊⽅式有 3 种:
1、JSP 脚本,执⾏ Java 逻辑代码
<% Java代码 %>
2、JSP 声明:定义 Java ⽅法
<%!
声明 Java ⽅法
%>
3、JSP 表达式:把 Java 对象直接输出到 HTML ⻚⾯中
<%=Java变量 %>
例子:
<%!
public String test(){
return "HelloWorld";
}
%>
<%
String str = test();
%>
<%=str%>
访问输出

JSP 内置的九个对象
- request:表示⼀次请求,HttpServletRequest。
- response:表示⼀次响应,HttpServletResponse。
- pageContext:⻚⾯上下⽂,获取⻚⾯信息,PageContext。
- session:表示⼀次会话,保存⽤户信息,HttpSession。
- application:表示当前 Web 应⽤,全局对象,保存所有⽤户共享信息,ServletContext。
- config:当前 JSP 对应的 Servlet 的 ServletConfig 对象,获取当前 Servlet 的信息。
- out:向浏览器输出数据,JspWriter。
- page:当前 JSP 对应的 Servlet 对象,Servlet。
- exception:表示 JSP ⻚⾯发⽣的异常,Exception。