

提供访问路径【web.xml】 需要重启服务器,修改了web.xml
servlet映射中的<url-pattern>login.do</url-pattern>如果没有/则无效,必须带上一根/
Servlet 生命周期
init() 方法
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。
public void init() throws ServletException {
// 初始化代码...
}
service() 方法
public void service(ServletRequest request,
ServletResponse response)
throws ServletException, IOException{
}
doGet() 方法
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}
doPost() 方法
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// Servlet 代码
}
destroy() 方法
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。
在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:
public void destroy() {
// 终止化代码...
}
实现接口代码
package com.zking.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class LoginServlet implements Servlet{
@Override
public ServletConfig getServletConfig() {
//得到配置
return null;
}
@Override
public String getServletInfo() {
//得到信息
return null;
}
@Override
public void init(ServletConfig arg0) throws ServletException {
//初始化 这个servlet被人访问
System.out.println("初始化");
}
@Override
public void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {
//服务 访问的时候它来提供信息
//request:请求【获取用户带过来的数据】
//response:响应【给用户输出信息】
req.setCharacterEncoding("utf-8");
//获取信息
String uname = req.getParameter("uname");
String upwd = req.getParameter("upwd");
//获得输出对象
resp.setCharacterEncoding("gb2312");
PrintWriter out = resp.getWriter();
//逻辑判断
if("admin".equals(uname)&&"123".equals(upwd)) {
//显示在页面中【登录成功】
out.print("登录成功");
}else {
//显示在页面中 【登录失败】
out.print("登录失败");
}
}
@Override
public void destroy() {
//销毁
// 1.更新了servlet代码
// 2.服务器关闭
System.out.println("销毁");
}
}
继承代码
package com.zking.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/two.do")
public class LoginTwoServlet extends HttpServlet{
//提供方法给人访问才行
//servlet
//提供个体访问
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
System.out.println("哈哈");
}
//提供post访问
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//拿数据
String uname = req.getParameter("uname");
String upwd = req.getParameter("upwd");
//获得输出对象
resp.setCharacterEncoding("gb2312");
PrintWriter out = resp.getWriter();
//逻辑判断
if("admin".equals(uname)&&"123".equals(upwd)) {
//显示在页面中【登录成功】
out.print("登录成功");
}else {
//显示在页面中 【登录失败】
out.print("登录失败");
}
//session
//req.getSession().setAttribute("", );
//application
//req.getServletContext().setAttribute("", );
//Context 上下文【容器】
}
}