浅谈Servlet

Servlet是在服务器上运行的小程序。
Servlet 为创建基于 web 的应用程序提供了基于组件、独立于平台的方法,可不受 CGI程序的性能限制。
Servlet 有权限访问所有的 Java API,包括访问企业级数据库的 JDBC API。

Servlet实现过程:
1、客户端发送请求至服务器端;
2、服务器将请求信息发送至 Servlet;
3、Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
4、服务器将响应返回给客户端。

        //创建一个类继承HttpServlet
        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 MyServlet extends HttpServlet {

            //不分请求方式
            @Override
            protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
                System.out.println("所有请求");
                req.setCharacterEncoding("utf-8");     //设置接收参数的字符编码
                res.setContentType("text/html;charset=utf-8");    //设置返回页面的字符集编码
                String path = req.getServletPath();         //分析请求资源路径(/check_uname.do)根据请求资源路径执行相应的方法 
                PrintWriter pw = res.getWriter();     //获取输出流
                pw.println("用户名被占用");       //向客户端返回数据  (交互结束)
            }

            //get请求
            @Override
            protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                System.out.println("GET请求");
            }

            //post请求入口
            @Override
            protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                System.out.println("POST请求");
            }
        }

当你重写了service方法时,不管你的请求是get类型的还是post类型的都只会进入service这个方法,如果没有重写service方法,也没有重写doGet方法,那么当你前段发送GET请求时将会报40错误。
写完了一个MySerlet类之后你还得在web.xml中进行配置才能生效。

            <servlet>
                <servlet-name>myServlet</servlet-name>
                <servlet-class>controller.MyServlet</servlet-class>
            </servlet>
            <servlet-mapping>
                <servlet-name>myServlet</servlet-name>
                <url-pattern>*.servlet</url-pattern>
            </servlet-mapping>
        使用.servlet的后缀就能访问这个servlet。你也可以这样配置<url-pattern>/</url-pattern>这样所有的请求都会进入这个servlet

Servlet生命周期:
1、客户端请求该 Servlet;
2、加载 Servlet 类到内存;
3、实例化并调用init()方法初始化该 Servlet;(init的方法只在初始化的时候执行一次)
4、service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。
5、加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值