• hello2部分源码解析


    先放代码:GreetingServlet.java

    /**
    * Copyright (c) 2014 Oracle and/or its affiliates. All rights reserved.
    *
    * You may not modify, use, reproduce, or distribute this software except in
    * compliance with the terms of the License at:
    * https://github.com/javaee/tutorial-examples/LICENSE.txt
    */
    package javaeetutorial.hello2;

    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    /**
    * This is a simple example of an HTTP Servlet. It responds to the GET method of
    * the HTTP protocol.
    */
    @WebServlet("/greeting")
    public class GreetingServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException {

    response.setContentType("text/html");
    response.setBufferSize(8192);
    try (PrintWriter out = response.getWriter()) {
    out.println("<html lang="en">"
    + "<head><title>Servlet Hello</title></head>");

    // then write the data of the response
    out.println("<body bgcolor="#ffffff">"
    + "<img src="resources/images/duke.waving.gif" "
    + "alt="Duke waving his hand">"
    + "<form method="get">"
    + "<h2>Hello, my name is Duke. What's yours?</h2>"
    + "<input title="My name is: " type="text" "
    + "name="username" size="25"/>"
    + "<p></p>"
    + "<input type="submit" value="Submit"/>"
    + "<input type="reset" value="Reset"/>"
    + "</form>");

    String username = request.getParameter("username");
    if (username != null && username.length() > 0) {
    RequestDispatcher dispatcher =
    getServletContext().getRequestDispatcher("/response");

    if (dispatcher != null) {
    dispatcher.include(request, response);
    }
    }
    out.println("</body></html>");
    }
    }

    @Override
    public String getServletInfo() {
    return "The Hello servlet says hello.";

    }
    }

    对里面的部分代码分析:

    String username = request.getParameter("username");  //获取通过URL或者form传递过来的数据并赋值给username
    if (username != null && username.length() > 0) {    //对数据进行验证,满足不为空和长度大于0的条件
    RequestDispatcher dispatcher =
    getServletContext().getRequestDispatcher("/response");    
     //获取jsp上下文里边存储了各变量的信息(值),把一个命令发送到浏览器,让浏览器对指定的URL提出请求(此处的URL只能使用绝对路径)
    if (dispatcher != null) {
    dispatcher.include(request, response);    //如果接收到的客户端的请求不为空时,记录保留request和response,以后不能再修改response里表示状态的信息。 
    }
    }

  • 相关阅读:
    Docker-MsSqlServer和安装版本异同
    ASP.NET Core入门
    开源网站.NETMVC+ Layui+SqlSugar+RestSharp
    SqlSugar ORM已经支持读写分离
    【开源框架】SqlSugarRepository 全库ORM 正式发布
    花几分钟搭建一个自已的GIT服务器
    [开源ORM] SqliteSugar 3.x .net Core版本成功上线
    N[开源].NET CORE与MySql更配, MySqlSugar ORM框架 3.x
    Dapper ORM VS SqlSugar ORM的 8场对决
    .NET 开源SqlServer ORM框架 SqlSugar 3.0 API
  • 原文地址:https://www.cnblogs.com/April315/p/10587855.html
Copyright © 2020-2023  润新知