Servlet总结

1.基础概念

Java Servlet的简称,称为小服务程序或服务连接器,
用Java编写的服务器端程序,主要功能在于交互式地浏
览和修改数据,生成动态Web内容。

Servlet可以响应任何类型的请求,但绝大多数情况下
Servlet只用来扩展基于HTTP协议的Web服务器。(本质还是一个类)

2.Servlet的生命周期

由容器进行创建:(可以设置为容器立即创建或者在servlet第一次被访问时创建)
过程:
1.Servlet实例化
2.初始化init()方法
3.service(),用于写具体的逻辑代码,调用service
4.destory()方法,在关闭tomcat(服务器)时执行
5.卸载
注意:一个每个Servlet只会被实例化和初始化一次,每次都会被调用的方法是service方法,Servlet直到容器关闭时才会被销毁

3.常用的创建Servlet的两种方式和两种配置Servlet的方式:

1.实现servlet接口:

//=====配置方式1:注解
@WebServlet(name ="FirstServlet" ,urlPatterns ="/first")
public class FirstServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("调用初始化方法");
    }

    @Override
    public ServletConfig getServletConfig() {
        System.out.println("调用配置方法");
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("执行业务方法");
    }

    @Override
    public String getServletInfo() {
        System.out.println("调用获取Servlet信息的方法");
        return null;
    }

    @Override
    public void destroy() {
        System.out.println("调用销毁方法");
    }
}
//======配置方式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_4_0.xsd"
         version="4.0">
    <servlet>
        <!--等价于 name ="FirstServlet"-->
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>com.redocloud.servlet.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
        <!--等价于 urlPatterns ="/first" 可以为多个-->
        <url-pattern>/first</url-pattern>
    </servlet-mapping>
</web-app>

在这里插入图片描述
2.继承于HttpServlet:

@WebServlet(name = "UserServlet",urlPatterns = "/user")
public class UserServlet extends HttpServlet {
    private UserService service = new UserServiceImpl();
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         doGet(request, response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        String username = (String)request.getParameter("username");
        String password = (String)request.getParameter("password");

        System.out.println(username+password);
         User user = service.findByUsername(username);
         if(null==user){
             System.out.println("账号或密码错误!");
             return;
         }else{
             request.getSession().setAttribute("username", username);
             request.getRequestDispatcher("/pages/user.jsp").forward(request, response);
         }
    }
}

4.Servlet中的常用对象

1.ServletContext对象:
全局对象,如果把数据存放在这里,就是在整个web应用中都能获得数据
如:我在LoginServlet中做如下设置:

request.getServletContext().setAttribute("OK", "我还好");

在另外一个servlet中:

System.out.println("我是另外一个Servlet设置的OK的值"+req.getServletContext().getAttribute("OK"));

结果:
在这里插入图片描述
2.HttpServletRequest对象
封装了用户提交的信息,可以调用该对象的方法来获取相应的参数
常用方法:
//给请求的内容设置编码
req.setCharacterEncoding(“UTF-8”);
//获取请求的参数
req.getParameter(“method”);
//请求转发
req.getRequestDispatcher(after).forward(req, resp);
//属性的设置,这个属性仅在一次请求的传递过程中有效
req.setAttribute(“属性名”, “属性值”);
3.HttpRequestResponse
响应对象:
//设置响应的编码
resp.setCharacterEncoding(“UTF-8”);
//设置响应头信息
resp.setHeader(“Content-type”, “text/html;charset=UTF-8”);
//重定向
resp.sendRedirect(“你的路径”);
//输出流
resp.getWriter();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SinceThenLater

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值