• JavaWeb——servlet1


    一、servlet简介

    Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。
    狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

    总的来说,servlet就是一个运行在服务器(tomcat)上的一段小程序,可供开发人员实现客户端的网页请求和服务器响应过程中的操作,是由服务器来创建的,我们只需要配置好后启动程序就可以了。servlet帮我们实现了tomcat识别的war包,再把小程序打成war包存在tomcat下这个过程,不需要我们再自己打war包。

    二、http请求方式

    要用servlet首先我们得了解服务器常用的请求方式,才能来操作他们。

    在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。httpservlet类中也提供了doget()和dopost()两种方法。

    • GET - 从指定的资源请求数据。
    • POST - 向指定的资源提交要被处理的数据

    get和post的区别:

    三、常见请求状态

    • 200-299:本次请求已完成
    • 300-399:本次请求已完成,开始下次请求
    • 400-499:404请求错误,找不到资源,403:请求方式错误
    • 500-599:500服务崩溃,程序出现问题

    四、web工程创建

    大致知道原理后就来创建第一个web项目吧。

    1.在eclipse中新建Dynamic Web Project项目。我这里用eclipse创建的,勾选红框处会自动创建web.xml配置文件

    创建好后的项目目录如下:(注意若要手动创建web.xml要创建在WEB-INF目录下)

    2.引入servlet-api.jar包,并buid path

    3.创建一个类,该类需要继承HTTPServlet类,根据自己需求重写doPost()或doGet()方法

     

    4.配置web.xml配置文件信息(我这里就最简单配了一下名字、目录还可以配置优先级<load-on-startup>等)

    5.开发工具关联tomcat,我用的是eclipse

    选择你自己安装的tomcat版本

    给这个服务起个名字,选择你自己tomcat的安装路径

     6.部署项目

     

     

     五、servlet的配置加载过程

    当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给servlet。进而,我们通过ServletConfig对象就可以得到当前servlet的初始化参数信息。

    例如,可以用config.getInitParameter("path");来获取当前servlet的资源路径

    也可以获取全部的配置信息:

    1 Enumeration<String> initParameterNames = config.getInitParameterNames();
    2             while (initParameterNames.hasMoreElements()) {
    3                 String key = initParameterNames.nextElement();
    4                 String values = config.getInitParameter(key);
    5                 System.out.println(values);
    6             }

    六、访问servlet

    开启tomcat服务后就可以在浏览器里访问servlet啦

    我这里使用的都是tomcat默认的端口号和ip

    访问/hello的servlet:

    http:localhost:8080/servlet-1/hello

    访问test.html:

    http://localhost:8080/servlet-1/test.html

     七、servlet的访问过程

    那么servlet访问过程是怎样的,他是怎么找到资源路径的呢?

    对于http://localhost:8080/servlet-1/hello

    /hello:资源路径

    servlet会先去web.xml中找有没有一个<url-pattern>/hello</url-pattern>相匹配,再去找与<url-pattern>在同一级的标签下的<server-name>标签

     

    找到servlet-name时,此时再去找与<servlet-name>同名的标签

     

    六、常用api

    HttpServletRequest获取参数:

    • getParameter(name):获取一个参数,参数对应前端页面中name属性的值
    • getParameterMap():key是参数的name值,value是一个String[]
    • getParameterNames():获取所有的key值,返回值是一个迭代器类型
    • getParameterValues():针对一个key对应多个值得时候使用

    七、乱码问题

    在请求和响应过程中若字符编码不一致就会出现乱码的问题,还有可能是浏览器默认编码,编译器编码不一致等原因,改成一致的就可以了。

    修改请求和响应的编码方式一般有两种。

    方法一:代码中修改

    在重写的doPost(),doGet()加入下面两行代码:

    request.setCharacterEncoding("UTF-8");
    
    response.setContentType("text/html;charset=utf-8");
    

      

    方法二:修改tomcat/server.xml

  • 相关阅读:
    SpringBoot打jar包以及打成war包 (springboot2.0)
    学习软件开发的心得
    SQA计划
    继续冲吧
    别跑了,看看脚下有木有money
    springIOC的那些事
    ssm
    scrum 第二次冲刺
    云医院
    团队项目开发总结
  • 原文地址:https://www.cnblogs.com/xjd-6/p/11184819.html
Copyright © 2020-2023  润新知