Servlet 与 ServletContext
1 Servlet 技术概述
1.1 Servlet就是运行在服务器端的java 程序
是sun 公司提供的一套规范 用来处理客户请求 响应给浏览器动态资源
Servlet javaWEB 三大组件 Servlet Filter Listener
1.2 Servlet作用
用来处理从客户端发送过来的请求 并对做出响应
a: 获取请求数据
b: 处理请求
c:完成响应
2 入门程序 Servlet
步骤:
1 创建类 继承HttpServlet 重写doGet doPost()
package cn.cfg.demo;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class Servel03 extends HttpServlet {
// 重写doPost 和doGet
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
public void init(){
System.out.println("初始化执行");
}
public void service(){
System.out.println("开始做事");
}
public void destroy(){
System.out.println("servlet被销毁");
}
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 解决中文乱码
req.setCharacterEncoding("UTF-8");
// getParameter获得指定参数的名称 数据
String username = req.getParameter("username");
String password = req.getParameter("password");
// 获取用户名和密码 控制台输出
System.out.println(username+" "+password);
}
}
2 编写配置文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!--第三个-->
<servlet>
<servlet-name>servel03</servlet-name>
<servlet-class>cn.cfg.demo.Servel03</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servel03</servlet-name>
<url-pattern>/b2</url-pattern>
</servlet-mapping>
</web-app>
3 浏览器访问
浏览器HTML文件
在浏览器地址栏输入 http://localhost:8080/工程名/hello
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--actio填写的路径 需要和web.xml里面<url-pattern>后填写的路径一致 前面加.-->
<form action="./b2" method="post">
用户名:<input type="text" name="username" value="黛玉">
密码:<input type="password" name="password" value="12345">
爱好:<input type="checkbox" name="hoby" checked="checked">美女
<input type="checkbox" name="hoby" checked="checked">美酒
<input type="submit" value="提交">
</form>
</body>
</html>
2.2 Request请求参数
1 getParameter(String name) 获得指定参数的名称 如果没有 返回null
2 如何使用
1 表单
2 编写Servlet
3 Servlet 生命周期
3.1 一个对象从创建到销毁的过程
何时创建:用户第一次访问的时候 Servlet被创建(单例)
何时销毁: 当项目从服务器移除的时候 | 关闭服务器的时候
Servlet 规范中规定 所有的Servlet 必须实现javax.servlet.Servlet接口
1 每一次调用 都将执行初始化方法init()
2 每一调用的时候 都将执行service()方法
3 服务器关闭时执行destory();
3.2 Servlet 的相关配置
1 启动服务器创建Servlet 在web.xml配置文件中进行配置 整数 越小优先级越高
<servlet>
<servlet-name>demo01ParamServlet</servlet-name>
<servlet-class>cn.kgc.demo02.Demo01ParamServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
2 url-pattern 的配置方式有三种
1 完全路径配置 以 / 开始
例如 /hello /servletDemo
2 目录匹配
以/ 开始 以* 结束
/* /wwww/*
3 拓展名匹配
不能以/ 开始 可以*开始 *.jsp
4 / 缺省路径
4 ServletContext对象 重点
4.1 是什么
服务器启动的时候 为每个web 应用会创建一个单独ServletContext对象 ----》存取数据
用这个对象的存取数据 可以在整个的web应用中获得
4.2 如何存取数据
setAttribute(String name,Object obj);
getAttribute(String name);
removeAttribute(String name;