• HttpServlet


    HttpServlet的原理

     1 HttpServlet抽象类中的(部分)方法
     2 
     3 HttpServlet extends GenericServlet{
     4  void service(ServletRequest request,ServletResponse responce){
     5    *强转两个参数为http协议相关的类型。
     6    *调用本类的servic(HttpServletRequest, HttpServletResponse)方法
     7  }
     8 
     9 
    10  void service(HttpServletRequest,HttpServletResponse)-->参数已经是Http协议相关的,使用起来就更加方便。
    11    *它会通过request得到当前请求的请求方式,例如:GET或POST
    12    *根据请求方式在调用doGet()或doPost()方法
    13 
    14 
    15  void doGet(){...} -->重写
    16  void doPost(){...} -->重写
    17 
    18 }

    原理图:

    源码:

    MyHttpServlet.java

     1 package one.servlet;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.ServletException;
     6 import javax.servlet.http.HttpServlet;
     7 import javax.servlet.http.HttpServletRequest;
     8 import javax.servlet.http.HttpServletResponse;
     9 
    10 public class MyHttpServlet extends HttpServlet {
    11     //**公有的请求方法
    12     @Override
    13     public void doPost(HttpServletRequest req, HttpServletResponse resp)
    14             throws ServletException, IOException {
    15         //我们只需重写该方法即可
    16         System.out.println("doPost()...");
    17     }
    18 }

    如果在浏览器的地址栏中输入http://localhost:8080/XJS_Servlet1/MyHttpServlet 然后请求,会出现下图:

    解决方法:在WebRoot文件下创建一个login.html

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta charset="UTF-8">
     5 <title>Insert title here</title>
     6 </head>
     7 <body>
     8         <!-- 路径要求:“/”开头+/项目名+/servlet路径(web.xml中url-pattern) -->
     9         <form action="/XJS_Servlet1/MyHttpServlet" method="post">
    10             <input type="submit" value="提交"/>
    11         </form>
    12 </body>
    13 </html>

     然后中浏览器地址栏中输入http://localhost:8080/XJS_Servlet1/login.html  再点击提交按钮,以post的方式请求服务器

    请求一次,执行一次doPost()方法,结果如下:

    doPost()...
    doPost()...
    

    自己直接创建一个servlet:直接继承了HttpServlet,还重写doGet()和doPost()方法

    然后Next

    然后就会自动为我们再web.xml文件中配置该FServlet的路径

  • 相关阅读:
    SQLServer 查询死锁
    SQLServer 查询当前的进程
    Python请求出现requests.exceptions.ConnectionError: HTTPSConnectionPool错误的解决方案。
    《C和指针》学习笔记[第一章 快速上手]
    sshkeygen
    ASM win64 abc
    Ways to Build
    call stack
    CALL and Linker
    CentOS 修改文件夹权限、所属用户和用户组
  • 原文地址:https://www.cnblogs.com/xjs1874704478/p/10761177.html
Copyright © 2020-2023  润新知