什么是Servlet
Servlet简介
- Servlet( Server Applet)是 Java servlet的简称,称为小服务程序或服务连接器
- 用Java编写的服务器端程序
- 主要功能在于交互式地浏览和修改数据,生成动态Web内容。
第一个Servlet
创建LoginServlet
package cn.java.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取表单提交过来的数据
// getParameter()方法可以获取请求的参数信息
String username = request.getParameter("username");
String password = request.getParameter("password");
// 打印获取到的参数信息
System.out.println("username=" + username);
System.out.println("password=" + password);
// 如果usename=admin,password=123则跳转到success.jsp,否则跳转到fail.jsp
// 1、通过转发实现跳转
if ("admin".equals(username) && "123".equals(password)) {
request.getRequestDispatcher("/success.jsp").forward(request, response);
} else {
// request.getRequestDispatcher("/fail.jsp").forward(request,
// response);
response.sendRedirect("/imooc_servlet1/fail.jsp");
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
给LoginServlet配置一个对外访问的虚拟路径
index.jsp
success.jsp
fail.jsp
登录成功:
Serverlt的生命周期
Servlet生命周期分为三个阶段:
- 1,初始化阶段调用init()方法
- 2,响应客户请求阶段调用 service()方法
- 3,终止阶段调用 destroy()方法
多次调用:
从tomcat移除会被销毁
HttpServeltRequest(请求)与HttpServeltResponse(响应)
请求与响应
- 浏览器对服务器的一次访问称之为一次请求,请求用 HttpServletRequest对象来表示
- 服务器给浏览器的一次反馈称之为一次响应,响应用 HttpServletResponse对象来表示
ServeltContext与ServletConfig
- Java是一门面对对象的语言,万事万物皆是对象。整个JavaWeb工程也可以用一个对象来表示,这个对象就是ServletContext类型
- 我们可以在web.xml文件中给某一个Servlet配置一些配置信息,当服务器被启动的时候,这些配置信息就会被封装到一个ServletConfig对象中去。因此ServletConfig表示的是某一个Servlet的配置文件
然后在Demo2Servlet获取username
获取配置信息
重定向与转发
- 实现转发调用的是 HttpServletRequest对象中的方法,实现重定向调用的是 HttpServletReSponse对象中的方法
- 转发时浏览器中的ur地址栏不会发生改变,重定向时浏览器中的ur地址会发生改变
- 转发时浏览器只请求一次服务器,重定向时浏览器请求两次服务器