• servlet


    getServletConfig,service

    servlet信息   建立与客户端连接(工作)

    明确

    一.servlet是什么?

    二.servlet的使用

    学习过程:

    一.先讲了servlet是什么,然后在servlet的中写道 System.out.println("这是服务器,客户端请求已接收"); 用tomcat建立好连接,访问到local8080目录,然后写道 /index.jsp

    建立了另一个test.jsp,在目录中访问 /test.jsp

    明白了localhost页面的访问机制与文件夹类似

    二.然后尝试访问servlet,将目录输入,然后失败。

    利用映射,在web.xml中建立目录映射

    1.sevlet  将java文件重命名为abc

    2.sevlet-mapping ,将abc与/abc对应起来

    此时localhost:8080/abc即可访问到servlet

    三.然后在sevlet中进行功能添加

    明白 Response为响应,Request为接收

    ①想在前端做出中文响应:

    servletResponse.setContentType("text/html;charset=UTF-8");
    servletResponse.getWriter().write("客户端你好,我来了!收到id为"+id);

    ②接收前端数据

    String id= servletRequest.getParameter("id");

    映射service中的内容,在web.xml中做

    
    
    <servlet>
        <servlet-name>MyServlet</servlet-name>
        <servlet-class>com.servlet.MyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyServlet</servlet-name>
        <url-pattern>/myservlet</url-pattern>
    </servlet-mapping>

    注解

    @WebServlet("/demo1")
    public class HelloServlet implements Servlet {
    }

    只调⽤⼀次,卸载对象。

    四.Servlet 的⽣命周期
    1、当浏览器访问 Servlet 的时候,Tomcat 会查询当前 Servlet 的实例化对象是否存在,如果不存在,
    则通过反射机制动态创建对象,如果存在,直接执⾏第 3 步。
    2、调⽤ init ⽅法完成初始化操作。
    3、调⽤ service ⽅法完成业务逻辑操作。
    4、关闭 Tomcat 时,会调⽤ destory ⽅法,释放当前对象所占⽤的资源。
     
     
    Servlet 的⽣命周期⽅法:⽆参构造函数、init、service、destory
    1、⽆参构造函数只调⽤⼀次,创建对象。
    2、init 只调⽤⼀次,初始化对象。
    3、service 调⽤ N 次,执⾏业务⽅法。
    4、destory


    在server中干响应的事

    
    
    
    
    
    
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
       String id= servletRequest.getParameter("id");                //接收到前端传来的数据
        System.out.println("这是服务器,客户端请求已接收");        //后端接收到了
        servletResponse.setContentType("text/html;charset=UTF-8");    //用于显示中文
        servletResponse.getWriter().write("客户端你好,我来了!收到id为"+id);  //前端进行响应
    }
    
    

    反射

    public static  void main(String[] args) {
            String str="com.servlet.HelloServlet";
            try {
                //反射   先拿到方法,然后去调一个对象
                //正常为  先调对象,再拿方法
                Class clazz=Class.forName(str);
                Constructor constructor=clazz.getConstructor();  //获取构造方法
                Object object=constructor.newInstance();    //用这个方法调用一个对象
                System.out.println(object);
            } catch (Exception e) {
                e.printStackTrace();
            }

     五.Servlet 的层次结构

    1.关系
    Servlet --->GenericServlet --->HttpServlet
    2.HTTP请求类型
    HTTP 请求有很多种类型,常⽤的有四种:
    GET 读取
    POST 保存
    PUT 修改
    DELETE 删除
    3.实现与继承关系
    GenericServlet 实现 Servlet 接⼝,同时为它的⼦类屏蔽了不常⽤的⽅法,⼦类只需要重写 service ⽅法即可。
    HttpServlet 继承 GenericServlet,根据请求类型进⾏分发处理,GET 进⼊ doGET ⽅法,POST 进⼊doPOST ⽅法。
     
    *开发者⾃定义的 Servlet 类只需要继承 HttpServlet 即可,重新 doGET 和 doPOST
    public class TestServlet extends HttpServlet {
     @Override
     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
     resp.getWriter().write("GET");
     }
     @Override
     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
     resp.getWriter().write("POST");
     }
    }
     

    server在此例子能够接收前端数据以及做出响应。

    此外它还能使jsp传到前端,控制显示页面

    以及连接数据库

    晚上模拟了一遍,tomcat一直报错,最后发现原因在web.xml那里

    忘了把名字前面加上/

  • 相关阅读:
    Zookeeper C API 指南六(异步 API 介绍)
    libuv 中文编程指南(三)文件系统
    Zookeeper C API 指南二(监视(Wathes), 基本常量和结构体介绍)
    Zookeeper C API 指南五(同步 API 介绍)
    Zookeeper C API 指南七(Zookeeper 辅助 API 介绍)
    libuv 中文编程指南(四)网络
    Zookeeper C API 指南八(Zookeeper C API 应用示例)
    Zookeeper C API 指南四(C API 概览)
    Zookeeper C API 指南三(回调函数)
    jQuery Mobile 移动开发中的日期插件Mobiscroll 2.3 使用说明
  • 原文地址:https://www.cnblogs.com/hanabi-521/p/14271019.html
Copyright © 2020-2023  润新知