• servlet-01


    b(浏览器)/s(服务器)

    1、什么是B/S

    客户端采用的是标准的浏览器,服务器采用的是标准的web服务器,浏览器与web服务器采用的是标准的HTTP协议进行通讯

    相对于C/S而言,B/S优势:

    编程相对简单,C/S结构需要单独编写通讯模块与自定义协议,而B/S结构采用的是标准的浏览器与web服务器,包含了通讯模块,并且浏览器与web服务器采用的是标准的HTTP协议进行通讯,也不需要编写

    2、什么是Servlet

    sun公司制定的一种用于扩展web服务器功能的组件规范。

    扩展web服务器功能?

    因为早期的web服务器只能处理静态资源文件,不能处理动态(需要经过一系列计算生成的页面)的资源文件,所以需要扩展。

    如何扩展?(组件+容器)

    组件:符合特定规范,为了实现某个功能而定义的java类。

    容器:符合规范,为了组件提供运行环境,并且可以管理组件生命周期的软件模块。

    注:组件依赖于容器,但并不依赖于特定的容器

    3、tomcat容器

    启动tomcat:双击tomcatinstartup.bat

    验证是否启动成功:地址栏输入-localhost:8080

         localhost:主机名(127.0.0.1)

         8080:服务器端口号

    4、如何定义一个servlet组件

    a.新建一个java类,继承HttpServlet

    b.重写service方法

    c.在web.xml文件中配置servlet

    5、http://localhost:8080/servlet01/sayHello

    a.根据ip:端口号与服务器建立连接(localhost:8080)

    b.根据应用名(servlet01)查找tomcatwebapps下对应的文件夹

    c.如果找到该文件夹,根据/sayHello与web.xml文件中的url-pattren进行匹配

    d.如果匹配成功,根据mapping中的name可以确定调用哪一个<servlet>,在<servlet>标记中通过<servlet-class>可以确定调用哪一个servlet组件

    e.容器利用反射的技术创建servlet对象,并调用其service方法处理请求

    6、哪些是get请求

    a.直接在浏览器地址栏中输入地址

    b.点击链接<a href=""></a>

    c.表单的默认提交方式<form method="get" action="">

        哪些是post请求

    将表单的提交方式该成post    <form method="post" action="">

    7、如何在servlet中正确输出中文?

    response.setContentType("text/html;Charser=utf-8");
    PrintWriter out=response.getWriter();
    out.print("中文");

    8、如何获取请求参数值

    String:request.getParameter(String name);

    若参数值是中文:

    GET:需要修改tomcatconfserver.xml中69行  URIEncoding="utf-8"

    POST:在获取参数值之前,调用  request.setCharacterEncoding("utf-8");

    9、servlet运行原理:

    第一步:浏览器根据IP:端口号与服务器建立连接

    第二步:浏览器通讯模块根据http协议将数据打包

    第三步:浏览器向服务器发送请求

    第四步:服务器端通讯模块根据http协议拆包,并且将拆包之后的数据存放到request(请求对象)中,方便将来在service中获取请求数据

    第五步:根据请求路径查找对应的servlet,容器负责创建该对象

    第六步:容器负责调用该对象的service方法

    第七步:在service方法中,根据具体业务逻辑编写代码,比如:向页面输出“Hello Servlet”

    第八步:服务器端通讯模块从response(响应对象)中取出缓存数据,并按照http协议打包

    第九步:服务器发送响应,浏览器拆包,根据服务器响应的数据生成新的页面

    10、常见错误

    a.  servlet组件没有继承HttpServlet   ——500

    b.  service方法写错 ——405

    c.  servlet配置的name不一致 ——部署报错

    d.  servlet-class路径写错 ——500

    e.  路径写错 ——404

    Address already in use:端口号被占用

    解决方案:关闭之前的tomcat服务

    方案一:双击shutdown.bat文件

    方案二:通过命令关闭(dos界面-windows)

                  查找进程号:netstat -ano|findstr 8080

                  杀掉进程:taskkill /pid 进程号 /f

  • 相关阅读:
    卸载linux自带openjdk并安装sun jdk
    配置互信
    【学习笔记】计算理论
    python 矩阵乘法
    一个python二维列表格式化美观输出的题目
    【学习笔记】SICP读书笔记&&UCB CS61A学习笔记(学习中。。。)
    js模块化编程(未完待续)
    js——封装音频播放 暂停
    js——构造函数手撕大转盘
    kubernetes的iptables与ipvs详解
  • 原文地址:https://www.cnblogs.com/xslzwm/p/9667264.html
Copyright © 2020-2023  润新知