Hello2 源码解析

Posted on 2019-03-26 19:25  LeshengW  阅读(113)  评论(0编辑  收藏  举报
String username = request.getParameter("username");
/*
* 把得到的用户名字给 username
*/
if (username != null && username.length()> 0) {//若username不为 空 并且长度大于零则
                RequestDispatcher dispatcher =
                    getServletContext().getRequestDispatcher("/response");
          /*
           *定义要发送给服务器的请求
           *cnotext为一直包装       
           *该路径名必须以 "/" 开头,并相对于当前上下文根进行解释。
         *如果 ServletContext 无法返回 RequestDispatcher,则此方法返回 null
                 */
if (dispatcher != null) {
                    dispatcher.include(request, response);
            /*
             *
利用include()方法将HTTP请求转送给其他Servlet(/response)后,
             *被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在当前的Servlet。
            */
} }
复制代码
复制代码
@WebServlet("/response")//url映射
public class ResponseServlet extends HttpServlet {

    @Override//重写doGet方法
    public void doGet(HttpServletRequest request,
            HttpServletResponse response)
            throws ServletException, IOException {//抛出可能出现servlet和IO异常
        try (PrintWriter out = response.getWriter()) {//捕获可能发生的异常

            // then write the data of the response
            String username = request.getParameter("username");在请求中取得username参数的值
            if (username != null && username.length()> 0) {
                out.println("<h2>Hello, " + username + "!</h2>");//在前段页面打印username值
            }
        }
    }

——————————————参考“霸波儿儿奔“的“Hello2 源码分析”

Copyright © 2024 LeshengW
Powered by .NET 9.0 on Kubernetes