博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对Java tutorial-examples中hello2核心代码分析
阅读量:4342 次
发布时间:2019-06-07

本文共 2221 字,大约阅读时间需要 7 分钟。

1.在hello2中有两个.java源文件分别是GreetingServlet.Java和ResponseServlet.jva文件主要对以下核心代码做主要分析。

1 String username = request.getParameter("username");    //获取表单数据2             if (username != null && username.length() > 0) {3                 RequestDispatcher dispatcher =              //定义一个dispatcher用来接收客户端的请求,并将它们发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件)4                         getServletContext().getRequestDispatcher("/response");  //获取上下文内容并且返回以路径/response的响应5                 6                 if (dispatcher != null) {7                     dispatcher.include(request, response);   //如果接收的客户端请求不为空则,则包含响应资源(jsp页面 html servlet)内容8                 }9             }

要理解上面代码我们必须先要理解以下概念

(1)getParameter

String javax.servlet.ServletRequest.getParameter(String name)

以String形式返回请求参数的值,如果参数不存在,则返回null。请求参数是随请求一起发送的额外信息。对于HTTP servlet,参数包含在查询字符串或发布的表单数据中。只有在确定参数只有一个值时才应使用此方法  

(2)RequestDispatcher

javax.servlet.RequestDispatcher 

定义一个对象,该对象接收来自客户端的请求,并将它们发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件)。 servlet容器创建RequestDispatcher对象,该对象用作位于特定路径或由特定名称给出的服务器资源的包装器。此接口旨在包装servlet,但servlet容器可以创建RequestDispatcher对象来包装任何类型的资源。

(3)getServletContext()

ServletContext javax.servlet.GenericServlet.getServletContext()

提供该方法是为了方便起见。它从servlet的ServletConfig对象获取上下文。

返回:ServletContext由init方法传递给此servlet的ServletContext对象

(4)getRequestDispatcher()

RequestDispatcher javax.servlet.ServletContext.getRequestDispatcher(String path)

返回一个RequestDispatcher对象,该对象充当位于给定路径的资源的包装器。 RequestDispatcher对象可用于将请求转发到资源或将资源包含在响应中。资源可以是动态的也可以是静态的。路径名必须以 / 开头,并且被解释为相对于当前上下文根。使用getContext为外部上下文中的资源获取RequestDispatcher。如果ServletContext无法返回RequestDispatcher,则此方法返回null。 

(5)  include(request, response)

void javax.servlet.RequestDispatcher.include(ServletRequest request, ServletResponse response) throws ServletException, IOException 

包含响应中的资源(servlet,JSP页面,HTML文件)的内容。从本质上讲,这种方法可以实现程序化服务器端包含。 ServletResponse对象的路径元素和参数与调用者保持不变。包含的servlet无法更改响应状态代码或设置标头;任何改变的尝试都会被忽略。请求和响应参数必须是传递给调用servlet的服务方法的相同对象,或者是包装它们的ServletRequestWrapper或ServletResponseWrapper类的子类。此方法将给定请求的调度程序类型设置为DispatcherType.INCLUDE。

参数:

Parameters:

  • request a  object that contains the client's request

  • response a  object that contains the servlet's response

 

转载于:https://www.cnblogs.com/yuanchao-blog/p/10583375.html

你可能感兴趣的文章
Linux课程笔记 NFS
查看>>
【软件】【diamond】-管脚分配
查看>>
1293: [SCOI2009]生日礼物 - BZOJ
查看>>
『TCP/IP详解——卷一:协议』读书笔记——06
查看>>
Android开发之自定义圆形的ImageView的实现
查看>>
Git的操作理解
查看>>
2019.4.24 一题(CF 809E)——推式子+虚树
查看>>
洛谷 3295 [SCOI2016]萌萌哒——并查集优化连边
查看>>
Arduino -- functions
查看>>
JS实现弹出层效果
查看>>
wazuh安装手册
查看>>
windbg调试C#代码(一)
查看>>
你必须了解的java内存管理机制(四)-垃圾回收
查看>>
BZOJ4719 NOIP2016天天爱跑步(线段树合并)
查看>>
前端打包文件在 nginx 上 403 的解决办法
查看>>
JFreeChart(一)
查看>>
python--12、pymysql模块
查看>>
CSS隐藏页面元素方法
查看>>
2016.6.16_GUI_DOWNLOAD函数生成word & html
查看>>
loj#2542. 「PKUWC2018」随机游走(树形dp+Min-Max容斥)
查看>>