美文网首页
手写ServletDemo

手写ServletDemo

作者: 一条自由自在的鱼 | 来源:发表于2016-06-05 17:15 被阅读273次

    慕课网“JAVA遇见HTML——Servlet篇”视频范例。

    写类继承HttpServlet

    重写doGet()和doPost()方法:IDEA中使用快捷键ctrl+o选择要重写的方法。

    在web.xml中注册Servlet

    添加servlet和servlet-mapping标签

    代码

    index.jsp

    <body>  
    <h1>第一个servlet小例子</h1> 
    <hr>  <a href="servlet/HelloServlet">Get方式请求HelloServlet</a><br>  
    <form action="servlet/HelloServlet" method="post">    
    <input type="submit" value="Post方式请求HelloServlet"/>  </form>
    </body>```
    
    `web.xml`在web-app标签中添加如下内容:
    
    

    <servlet>
    <servlet-name>HelloServlet</servlet-name>

    <servlet-class>servlet.HelloServlet</servlet-class>

    </servlet>
    <servlet-mapping>

    <servlet-name>HelloServlet</servlet-name>

    <url-pattern>/servlet/HelloServlet</url-pattern>

    </servlet-mapping>

    `HelloServlet.java`省略import的内容
    

    public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("处理Get请求...");
    PrintWriter out = response.getWriter();
    response.setContentType("text/html;charset=utf-8");
    out.println("<strong>Hello Servlet!</strong>
    "); }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    System.out.println("处理Post请求...");
    PrintWriter out = response.getWriter();
    response.setContentType("text/html;charset=utf-8");
    out.println("<strong>Hello Servlet!</strong>
    "); }}

    ####出现的问题
    post请求按钮总是返回405:这篇文章虽然没有帮助解决,但看了也有收获。
    <a>http://www.cnblogs.com/panjun-Donet/archive/2009/04/04/1429585.html</a>
    里面谈及的情况都是没有成功覆写doGet和doPost方法导致的调用父类自己的do*方法,默认返回400或405。但检查我自己的代码,并没有出现上述问题。
    最终关闭tomcat并重启后正常运行了。
    
    ####Servlet生命周期
    
    #####以下三种时刻Servlet容器装载Servlet
    
    ######Servlet容器启动时自动装载某些servlet
    
    1、在`web.xml`中添加代码`<loadon-startup>1</loadon-startup>`,数字越小优先级越高。
    2、Servlet容器启动后,客户端首次向Servlet请求servlet实例时。这时先调用构造方法,再调用初始化方法,继而调用service方法,由它判断该请求的类型,进而调用doGet()还是doPost()方法。整个servlet周期内,init方法只被调用一次。
    3、Servlet类文件被更新后,重新装载Servlet。

    相关文章

      网友评论

          本文标题:手写ServletDemo

          本文链接:https://www.haomeiwen.com/subject/mpdrdttx.html