Java web

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 的⽣命周期

  1. 当浏览器访问 Servlet 的时候,Tomcat 会查询当前 Servlet 的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在,直接执⾏第 3 步。
  2. 调⽤ init ⽅法完成初始化操作。(⽆参构造函数只调⽤⼀次,创建对象。init 只调⽤⼀次,初始化对象。)
  3. 调⽤ service ⽅法完成业务逻辑操作。(service 调⽤ N 次,执⾏业务⽅法。)
  4. 关闭 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 内置的九个对象

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

EL 表达式

JSTL

过滤器 Filter

JDBC 使用